[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:106089] Re: #!で始まるスクリプト


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

小山です。

From: Shigeru Makino <mac@xxxxxxx>
Subject: [linux-users:106088] Re: #!で始まるスクリプト
Date: Thu, 5 Jan 2006 13:29:01 +0900

> awkの場合は、
> #!/usr/bin/env awk -f
> となりますが、
> /usr/bin/envの第一引数が、"awk -f"と一纏めに送られるため、
> 
> /usr/bin/env: awk -f: そのようなファイルやディレクトリはありません
> とエラーになります。

 ちょっと興味を持って調べてみました。

Linuxのようにshebankの複数の引数を、まとめてひとつとしてしまうもの。
古いFreeBSDのように引数をわけてくれるもの。
Solaris8のように最初の引数だけ渡してくれるもの。

があるんだそうです。

> それを解決する目的で、exeは、空白で区切られたawkと-fを、
> 分離してawkに-fを引数として渡す単純なプログラムになっています。

 FreeBSDは、もともと引数を分けてくれるという仕様だったみたいだか
ら、問題ないんじゃないかなあ。
 でも、最初の引数だけ渡してくれるシステムのとき、動かなくなってし
まいますね。

 私は、/homeディレクトリに置いておくようなスクリプトは、実行属性
がついていたとしても、それをコマンドラインや別のスクリプトから使う
とき、awk -f scriptと明示的にコマンドを使うようにしています。
 でも、呼び出す側のスクリプトが、出来合いのもので、たくさんあると
困ってしまいますね。
 残念ながら、この問題を完全に解決したというページは見つかりません
でした。

- -- 
小山満    linux.users@xxxxxxxxxxxxx
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFDvMEqRDRWsqe74JwRAjqUAJkBTVNPyW4kuKFNo5gNGETt65z83wCdFo32
1aZcN8PRlytzrair3se/cOI=
=ZkBV
-----END PGP SIGNATURE-----

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: