GNU/Linux >> Linux の 問題 >  >> Linux

Linuxを使用して、ファイルの内容をパラメーターとして実行可能ファイルに渡すにはどうすればよいですか?

これでうまくいくはずです:

./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)
    

    Linux
    1. LinuxでTarコマンドを使用する方法

    2. コマンドラインを使用してLinuxでtar.gzファイルを抽出する方法

    3. Red Hat Linux の標準ツールを使用して、ファイル内の行をランダム化するにはどうすればよいですか?

    1. Linuxでファイルをシンボリックリンクするにはどうすればよいですか?

    2. Linux を使用してドライブ内のフォルダー数をカウントするにはどうすればよいですか?

    3. Linuxのviでfindによって返されたすべてのファイルを編集するにはどうすればよいですか?

    1. ファイルの内容をコマンドラインパラメータとして渡す方法は?

    2. Linux + 特定のユーザーだけにファイルの読み取りを許可する方法

    3. Linuxのfindコマンドを使用して、ファイル名の代わりにコンテンツを印刷するにはどうすればよいですか?