which コマンドの実装
Python を習いはじめたともだちのところで which コマンドの実装というネタをやっていたので、Perl/Ruby に改宗させるべく(?)載せてみる。ただ、この汚いワンライナだと、洗脳は期待できないカモ。
Perl 版
$ perl -e '@p = split(/:/, $ENV{"PATH"}); FIN: foreach $d (@p) { opendir(DIR, $d); foreach $f (readdir(DIR)){ if ($f =~ /^$ARGV[0]$/){ print "$d/$f\n"; last FIN;} } }' lsmod
Ruby 版
$ ruby -e 'require "find"; catch(:done) do ENV["PATH"].split(":").each do |p| Find::find(p) do |x| if(ARGV[0] == `basename #{x}`.chomp) then puts x; throw :done end end end end' lsmod