将文本添加到标准输入之前

将文本添加到标准输入之前

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

相关内容