4

重複の可能性:
シバンで複数の引数を使用する方法 (つまり #!)?

#!ステートメントに引数付きのパラメーターを受け入れるようにするにはどうすればよいですか? 通常のようにスペースで分割するのではなく、それらをすべて1つのパラメーターとしてまとめているようです。

この不自然な例を見てみましょう:

$ cat /tmp/echo
#!/bin/echo -n
$ /tmp/echo
/tmp/echo$

うまく機能し、最後に改行なしでファイル名を出力します。しかし、これは:

$ cat /tmp/echo
#!/bin/echo -n hi
$ /tmp/echo
-n hi /tmp/echo
$

-n引数を殺します。

私ができる1つのハックは、必要なパラメータで必要な最初のスクリプトを実行するだけの別のシェルスクリプトを作成することですが、必要がない場合は余分な依存関係を追加したくありません。

4

1 に答える 1

2

There apparently isn't a POSIX standard for this, but many (possibly most) *nix systems only allow you to send one argument to the program invoked in the shabang. So using #!/bin/echo -n hi is effectively the same as running /bin/echo "-n hi" /path/to/script.

See this SO answer for a more thorough explanation.

于 2012-12-08T20:46:38.843 に答える