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