次のスクリプトを考えてみましょう。
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
。