[PHP-users 5431] Re: コマンドライン版実行時のオプションエラー
Masaki Fujimoto
php-users@php.gr.jp
Fri, 15 Feb 2002 15:57:13 +0900
ふじもとです。
すみません、嘘書いてたかもしれません。
On Fri, 15 Feb 2002 15:15:30 +0900
Youichi Iwakiri <yiwakiri@st.rim.or.jp> wrote:
> いわきりです
-snip-
> ありゃりゃ、私の知り得るところのshellの動作は
> #!/hoge/program argument-lists ...
>
> に関してはトランスペアレンシーに機能すると思っていました。
> 違う環境もあるのですね。出来ればそれらのshellを紹介して頂けると
> ありがたいです。
僕もそう思っていて、家のRedhat 7.2で試してみたら早川さんと同じ結果が出て
驚いてしまったのです。で、今ちょっとためしてみたところ、
FreeBSD 4.5-stable
FreeBSD 2.2.8-stable
ではいわきりさんと同様の結果になりますが、
Redhat 6.2
Redhat 7.2
だと一つの引数として渡されます。Solaris(Ultra5)に至っては最初の引
数だけしか送られてきません。つまり
#!/foo/args -a -b -c
とすると
argv[0]: /foo/args
args[1]: -a
args[2]: ./test
となってしまいます。いまさらながら驚きました。BSD系とSystemV系で動作が違
うんでしょうか?調べてみればきっとBugDBにあがってると思いますが...
# なんだか無知をさらけだしているような
あと、patchの件ですが「特定の環境専用」ならいわきりさんのおっしゃる通り
簡単ですが(ただparseすればいいだけなので)、汎用的なものとなるとちょっと
難しいかな、という気がするのですが。
--
藤本 真樹
アストラザスタジオ
fujimoto@studio.co.jp
fujimoto@php.net