On 23May2007 13:33, David Champion <[EMAIL PROTECTED]> wrote:
| Is the problem with irregular behavior of different whiches?

I've never trusted it even to exist everywhere:-)

| Which is
| convenient but besides this has the drawback that since it's almost
| always a csh script, it sometimes returns csh aliases and such instead
| of what you really want.
| 
| It's easy enough to add a which-like command though.
| 
| where () 

Yes! I'd run with this myself.

| { 
|     echo $PATH | tr : '\012' | while read dir; do

This is more robustly written:

  printf "%s\n" "$PATH" | tr : '\012' | while read -r dir; do

Unless that breaks on Solaris, which it may:-(

|         [ -x "$dir/$1" -a ! -d "$dir/$1" ] && echo "$dir/$1" && return 0
| 
|         ## "return 0" returns from the do/done subshell, not the
|         ## function. "false" here ensures that a "where" that does not
|         ## find the program returns false at end.
|         false

This is not necessary. The last loop iteration will get false from the
"read" condition of the while, and so the subshell will exit non-zero
anyway.
-- 
Cameron Simpson <[EMAIL PROTECTED]> DoD#743
http://www.cskk.ezoshosting.com/cs/

If you can keep your head while all those about you are losing theirs,
perhaps you don't understand the situation.
        - Paul Wilson <[EMAIL PROTECTED]>

Reply via email to