33 lines
606 B
Bash
33 lines
606 B
Bash
#!/bin/sh
|
|
: expand filename
|
|
case "$1" in
|
|
~/*|~)
|
|
echo $1 | sed "s|~|${HOME-$LOGDIR}|"
|
|
;;
|
|
~*)
|
|
if /bin/test -f /bin/csh; then
|
|
/bin/csh -f -c "glob $1"
|
|
echo ""
|
|
else
|
|
name=`expr x$1 : '..\([^/]*\)'`
|
|
dir=`sed -n -e "/^${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/" -e p -e q -e '}' </etc/passwd`
|
|
if /bin/test ! -d "$dir"; then
|
|
me=`basename $0`
|
|
echo "$me: can't locate home directory for: $name" >&2
|
|
exit 1
|
|
fi
|
|
case "$1" in
|
|
*/*)
|
|
echo $dir/`expr x$1 : '..[^/]*/\(.*\)'`
|
|
;;
|
|
*)
|
|
echo $dir
|
|
;;
|
|
esac
|
|
fi
|
|
;;
|
|
*)
|
|
echo $1
|
|
;;
|
|
esac
|