>#! /bin/bash >umask 022 >export PATH=".:~/bin:/bin:/usr/bin" >export HOME=`(cd ~; pwd)` >touch cat; chmod 755 cat; pwd /home/carlo/c/which >alias >which Usage: which [options] [--] programname [...] Options: --version, -[vV] Print version and exit successfully. --help, Print this help and exit successfully. --skip-dot Skip directories in PATH that start with a dot. --skip-tilde Skip directories in PATH that start with a tilde. --show-dot Don't expand a dot to current directory in output. --show-tilde Output a tilde for HOME directory for non-root. --tty-only Stop processing options on the right if not on tty. --all, -a Print all matches in PATH, not just the first --read-alias, -i Read list of aliases from stdin. --skip-alias Ignore option --read-alias; don't read stdin. --read-functions Read shell functions from stdin. --skip-functions Ignore option --read-functions; don't read stdin. >which --version GNU which v2.16, Copyright (C) 1999 - 2003 Carlo Wood. GNU which comes with ABSOLUTELY NO WARRANTY; This program is free software; your freedom to use, change and distribute this program is protected by the GPL. >which -- --version which: no --version in (.:~/bin:/bin:/usr/bin) >which cat /home/carlo/c/which/cat >which --show-tilde cat ~/c/which/cat >which --show-dot cat ./cat >which --show-tilde --show-dot cat ./cat >which --skip-dot cat /bin/cat >(cd /bin; which cat) /bin/cat >(cd /bin; which --show-dot cat) ./cat >(cd /bin; PATH=".:/bin:/usr/bin" which --show-dot cat) ./cat >(cd /bin; PATH="/bin:.:/usr/bin" which --show-dot cat) /bin/cat >(cd /bin; PATH=".:/bin:/usr/bin" which --skip-dot --show-dot cat) /bin/cat >which ls /bin/ls >which xxx which: no xxx in (.:~/bin:/bin:/usr/bin) >which ./ls which: no ls in (.) >(cd /; which bin/ls) /bin/ls >(cd /; which --show-dot bin/ls) ./bin/ls >(cd /; which --show-dot /bin/ls) /bin/ls >(cd /; which --show-dot bin/xxx) which: no xxx in (./bin) >(cd /; which --show-dot /bin/xxx) which: no xxx in (/bin) >which --all cat /home/carlo/c/which/cat /bin/cat >touch xxx >which ./xxx which: no xxx in (.) >chmod 711 xxx >which ./xxx /home/carlo/c/which/xxx >chmod 655 cat >which cat /bin/cat >su >chown root cat >exit >which cat /home/carlo/c/which/cat >su >chmod 545 cat >exit >which cat /bin/cat >su >chgrp bin cat >exit >which cat /home/carlo/c/which/cat >su >chmod 541 cat >exit >which cat /home/carlo/c/which/cat >su >rm -f cat >chown root xxx >exit >which ./xxx /home/carlo/c/which/xxx >su >chmod 700 xxx >exit >which ./xxx which: no xxx in (.) >id uid=500(carlo) gid=500(carlo) groups=500(carlo),0(root) >ls -l xxx -rwx------ 1 root carlo 0 Sep 15 04:16 xxx >su >chmod 750 xxx >chgrp carlo xxx >exit >which ./xxx /home/carlo/c/which/xxx >su >chgrp bin xxx >exit >which ./xxx which: no xxx in (.) >alias which='alias | which --tty-only --read-alias --show-tilde --show-dot' >alias test1='test1' >alias test2='echo "test2" | cat | sort' >alias test3=' echo "test2"|cat&sort' >alias test4=' ls &&sort ||/usr/bin/which || exit' >which which alias which='alias | which --tty-only --read-alias --show-tilde --show-dot' ./which >which test1 alias test1='test1' >which test2 alias test2='echo test2 | cat | sort' /bin/echo /bin/cat /bin/sort >which test3 alias test3=' echo test2|cat&sort' /bin/echo /bin/cat /bin/sort >which test4 alias test4=' ls &&sort ||/usr/bin/which || exit' /bin/ls /bin/sort /usr/bin/which