標準入力の前にテキストを追加する

標準入力の前にテキストを追加する

script1標準入力で実行されるスクリプトがあります。以下からスクリプトを呼び出すことができます。script2

#!/bin/sh

./script1

script1その後、標準入力で作業してくださいscript2。他の入力をパイプすることもできます。script1

#!/bin/sh

echo "Called from script2" | ./script1

ただし、./script1標準入力はまったく使用されません。

私が望むのは、script1「Called from script2」入力の前に標準入力を追加することです。可能ですか?

一時ファイルを使用してこれを行う方法を知っていますが、一時ファイルを使用せずに方法があるかどうか疑問に思います。

答え1

#!/bin/sh

{
    echo 'some text'
    cat
} | ./script1

または

#!/bin/sh

{ echo 'some text'; cat; } | ./script1

catラッパースクリプトの標準入力をscript1

{ ...; }上記の例では、以前の複合コマンド(ビット)の結合出力をスクリプトにパイプしますscript1。入力はcatラッパースクリプトの標準入力ストリームであり、出力を生成してcat出力ストリームからそれを再生成します。echo

関連情報