which コマンドの実装2

要件定義/目的: 環境変数 PATH からコマンドの絶対パスを取得する
自己アピール: なし(単なる意地)
コメント: シェルスクリプトで書いた方がやっぱり簡単

$ which_bash() { echo $PATH | awk 'BEGIN{RS=":"} {print}' | while read f; do find $f -name $1 -perm +111; done | head -1; }
  • 実行結果
$ echo $PATH
/usr/kerberos/bin:/bin:/usr/bin:/usr/local/bin:/usr/lib/qt3/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin
$ which_bash which
/usr/bin/which
$ which_bash ls
/bin/ls
$ which_bash xgawk
/bin/xgawk
$ ls -al /usr/local/bin/fake_cmd
 -rw-r--r-- 1 root root 0 2008-04-09 08:12 /usr/local/bin/fake_cmd
$ which_bash fake_cmd
$