この日記にツッコミを入れたい人は、ツッコミを入れたい日付をクリックすると、フォームが現れることもある模様です。
/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って略すな、とかそういう感じで。まあ、オールドタイプという自覚はありますが。
なんか写真の鉄人がゲルググっぽいな。