sodiumイオンにっき2.0

トップ «前の日記(2009 01/09) 最新 次の日記(2009 01/11)» 編集
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|

 この日記にツッコミを入れたい人は、ツッコミを入れたい日付をクリックすると、フォームが現れることもある模様です。


2009 01/10 [長年日記]

むしろ/bin/shがbashなほうが気持ち悪い

/bin/sh が dashにリンクされててびびった:Unix的なアレ

ちらほらドキュメントも見かけたのでわりと有名なのかもしれませんね・・・いままで動いていたperlをubuntuに持っていったら動かなくなってびっくりしたのです。

Logを見る限りperlの内部でsystemでたたいているコマンドが動かなくなったんですね。わりとでかめのスクリプトだったので、とりあえずワンライナーをテスト用にたたいてみます。

$ perl -e 'system("ls -l <<< a ")'
sh: Syntax error: redirection unexpected

あれーなんかへんだなーと思い、/bin/shを調べてみました。<<< はbash拡張で使える機能なのでbashがうまくたたけてないのかなー。

 $ ls -l /bin/sh
 lrwxrwxrwx 1 root root 4 2009-01-09 16:02 /bin/sh -> dash

うーん問題ないよなぁ・・・ん?ちょっとまってくれ。dash?なんだソレ。と思って調べてみる。

shスクリプトにbash依存の記法を使うのがまず気持ち悪いよなぁ。どうしても使いたかったら明示的に#!/usr/bin/bashとかしたい。

shとして使うんだったらshの機能しか使わないほうが環境が変わっても移植しなくてすむ分だけ楽だと思っちゃうんだけどなぁ。bash拡張とわかっていて/bin/sh前提のところで使うって感覚がよくわからんなぁ。

あとPerlスクリプトを「perl」とか言ってしまうのもかなり気持ち悪いな。「perl」はPerlと言う言語の処理系の1実装(他の実装はしらんけど)で、プログラムの名称なんで、「perlをubuntuに持っていった」っていったら「perlをubuntuに移植してみた」という意味だと思ってしまうわけで。

シェルスクリプトをシェルっていうなよ、とかWikipediaをWikiって略すな、とかそういう感じで。まあ、オールドタイプという自覚はありますが。


[]