awk だけで which (w
昨日、find を awk だけで作ろうとして断念したけど、which ならば。
#! /usr/bin/gawk -f # which.awk - which command # usage: gawk -f which.awk command BEGIN { for(i = 1; i <= split(ENVIRON["PATH"], a_path, /:/); i++) { name = a_path[i] "/" ARGV[1] if (getline < name >= 0) { print name; exit; } } }
実行結果はこちら。
$ gawk -f which.awk xgawk /usr/local/bin/xgawk
find も shell に頼っていいなら作れるかもしれない。
副産物
#見えないじゃないか! by シャア BEGIN{;;;for(i=1; i<= split(\ ENVIRON["PATH"], aa, /:+/); i++){n=aa[i]"/"\ "" "#""#"\ ARGV[1];gsub("#", "", n); ;if( getline <\ n> 0){print n; exit; }}}#end