これでうまくいくはずです:
./program `cat file`
ファイルの内容全体を単一の引数に入れたい場合は、二重引用符を追加します (bash でテスト済み。シェルごとに異なる可能性があると思います):
./program "`cat file`"
コマンド
./program "$(< file)"
説明
<オール>
$(cmd)
コマンドを実行し、その出力を文字列に変換します。 $(cmd)
バックティックを使用して `cmd`
のように記述することもできます .新しい $(cmd)
の方が好きです 古い学校のバッククォートよりもうまく入れ子になるからです。
必要なコマンドは cat file
です .次に、bash の man ページから:
コマンド置換 $(cat file)
同等でより高速な $(< file)
に置き換えることができます .
ファイル内にスペースや改行がある場合に備えて、引用符で囲んで空白が保持されるようにします。シェルスクリプトで物事を適切に引用することは、非常に欠けているスキルです。変数とコマンド置換を引用符で囲むことは、ファイル名や変数値にスペースや制御文字、またはその他の奇妙なものが含まれている場合に、後になって後悔しないようにするための良い習慣です。
次のいずれかを使用できます:
./program $(cat file)
./program "$(cat file)"
後者は、ファイルに複数の単語が含まれる可能性があり、それらを 1 つの引数として扱いたい場合に便利です。いずれにせよ、私は if $()
を使用することを好みます 単に入れ子にする機能があるため、バッククォートに (これはおそらく 要件 ではありません) この場合)
また、この回答(およびその他)は、Linux自体ではなく、使用中のシェルに関連していることに注意してください。
シェルは bash
のようです 、そのために特別にコーディングしました。
これは、実際には、UNIX のそっくりさんの下でプロセスを強制終了するかなり一般的な方法です。デーモン (cron
など) ) はそのプロセス ID をファイルに書き込みます (/var/cron.pid
など) ) そして、あなたは次のようなものでそれを知らせることができます:
kill -HUP $(cat /var/cron.pid)