プログラムのマージ入力(stdin)を生成する方法

プログラムのマージ入力(stdin)を生成する方法

次のスクリプトを考えてみましょう。

echo a
echo b
echo c

3つの行が作成されます。これで、次のように実行できます。

abc_script | real_program

real_program入力にこの3つのファイルをインポートします。しかし、ユーザーには問題があります。abc_script出力をreal_program

では、このリダイレクトをスクリプトに移動するにはどうすればよいですか?次のようなもの(スクリプト):

echo a | echo b | echo c | real_program

これはうまくいきません。これは私がやりたいことを例示しただけです。real_programスクリプト内で呼び出しを隠すことです。


記録の場合:私の場合、入力はいくつかのファイルと追加の行で構成されています。だから私は持っています:

cat $input_file
echo $extra_line

ただa、b、cではありません。

ベストアンサー1

このように:

( echo a
  echo b
  echo c ) | real_program

サブシェルで3つのコマンドを実行し、echoサブシェルの出力をスクリプトにパイプします。

サブシェルはフレーズシュガーですbash -c 'echo a; echo b; echo c' | real_program

おすすめ記事