2007-03-01から1ヶ月間の記事一覧

コマンドラインでコマンドかファイルかを判断する。

まあ、いつか使えるかもしれないので残しておく。 irb(main):018:0> s="ls aaa|cat bbb|echo aP";a,*d=s.split(/\||;/).map{|i|i.split(/\s/)}.pop;if /(.*)P/.match(a) then ["command",$1] else until /(.*)P/.match(d.shift); end; ["file",$1] ;end => […

パターンマッチ

なんか、昔気がついていた気がするんだが最近組まなくなって久しかったので忘れていた気がする。 /./=~cgi['a'] /./.match(cgi['a'])でやると1.8系列では全部通る。1.6ではcgiを組まないこと。理由としては、1.8.1のCGI::QueryExtension::Valueクラスでの=~…

環境変数でスタックその2

$ a="/b/c:d/e/f:g/h/i" ; echo $a ; echo "${a%%:*}" /b/c:d/e/f:g/h/i /b/c $ a="/b/c:d/e/f:g/h/i" ; echo $a ; echo "${a#*:}" /b/c:d/e/f:g/h/i d/e/f:g/h/iどちらかというとshift,unshiftみたいだな。

シェル変数をスタック代わりに使う

$ a=":a/b/c:d/e/f:g/h/i"; echo ${a%:*} :a/b/c:d/e/f a=":a/b/c:d/e/f:g/h/i"; echo ${a##:*:} g/h/i