将脚本中的stdin重定向到另一个进程

jan*_*neb 7 bash pipe

假设我有一个bash脚本,通过stdin获得一些输入.现在在该脚本中我想启动另一个进程并让该进程通过其stdin获取相同的数据.


#!/bin/bash

echo STDIN | somecommand
Run Code Online (Sandbox Code Playgroud)

现在上面的"回声STDIN"事情显然是假的,问题是如何做到这一点?我可以使用read从stdin中读取每一行,然后将其附加到临时文件中

cat my_temp_file | somecommand
Run Code Online (Sandbox Code Playgroud)

但这就是某种方式.

jde*_*esa 10

当您编写bash脚本时,标准输入会被其中任何尝试读取它的命令自动继承,因此,例如,如果您有一个myscript.sh包含以下内容的脚本:

#!/bin/bash

echo "this is my cat"
cat
echo "I'm done catting"
Run Code Online (Sandbox Code Playgroud)

你键入:

$ myscript.sh < myfile
Run Code Online (Sandbox Code Playgroud)

你获得:

this is my cat
<... contents of my file...>
I'm done catting
Run Code Online (Sandbox Code Playgroud)