バックグラウンド
prog
標準入力から入力を受け取り、それに何かをするプログラムがあります。また、-f FILE
操作中に使用されるデータファイルを見つけるためのフラグも必要です。
このフラグを使用する必要がないように、このプログラムのラッパーとして機能する bash スクリプトを作成したいと考えています。だから私は次のスクリプトを書きましたprogwrap.sh
:
#!/bin/bash
/path/to/prog -f /path/to/data
基本的な機能のトリックを行うので、次のようなことができます
$ cat somedata.txt | progwrap.sh
そして欲しいものを手に入れる。
ゴール
ここで、 、 などprog
の他のフラグも取ることがわかりました。これらを に渡して、 に渡すことができるようにしたいと考えています。そこで、次のように修正しました。-h
-u
progwrap.sh
prog
progwrap.sh
#!/bin/bash
/path/to/prog -f /path/to/data "$@"
引数を取り、おそらくprog
スクリプト内にそれらをフィードできるようにします。
問題
ただし、これはどういうわけか機能しません。
$ cat somedata.txt | progwrap.sh -h
とまったく同じ出力を生成します
$ cat somedata.txt | progwrap.sh
これは正しい動作ではありません (つまり、-h フラグが progwrap.sh に渡された結果、出力が異なる形式で出力されるはずです)。
実際、サポートされておらず、通常はエラーをスローする原因となるprogwrap
無意味な引数を指定しても、何も起こりません。に渡された引数は、スクリプト内のへの呼び出しによって無視されると結論付けています。prog
prog
progwrap.sh
prog
質問
私は何を間違っていますか?progwrap.sh
これらのフラグがprog
スクリプト内で渡されるように、フラグを渡すにはどうすればよいですか?