假设我有一个bash脚本通过stdin获取一些输入。现在在该脚本中我想启动另一个进程并让该进程通过其stdin获取相同的数据。
#!/bin/bash
echo STDIN | somecommand
现在" echo STDIN"上面的事情显然是假的,问题是如何做到这一点?我可以使用read从stdin中读取每一行,将其附加到临时文件中,然后
cat my_temp_file | somecommand
但这就是某种方式。
答案 0 :(得分:9)
当您编写bash脚本时,标准输入会被其中任何试图读取它的命令自动继承,因此,例如,如果您有一个脚本myscript.sh
包含:
#!/bin/bash
echo "this is my cat"
cat
echo "I'm done catting"
然后输入:
$ myscript.sh < myfile
您获得:
this is my cat
<... contents of my file...>
I'm done catting
答案 1 :(得分:2)
可以tee
帮助你吗?
echo 123 | (tee >( sed s/1/a/ ) >(sed s/3/c/) >/dev/null )