which コマンドの実装

Python を習いはじめたともだちのところで which コマンドの実装というネタをやっていたので、Perl/Ruby に改宗させるべく(?)載せてみる。ただ、この汚いワンライナだと、洗脳は期待できないカモ。

which コマンドの実装 - forest book

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