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