【发布时间】:2016-05-31 15:00:45
【问题描述】:
我浏览了一些 bash i/o 教程,但其中大多数都涉及将流重定向到文件/从文件重定向。
我的问题如下:如何将 stdin/stdout/stderr 重定向到脚本(或程序)。
例如,我有脚本“parentScript.sh”。在那个脚本中,我想调用黑盒“childScript.sh”,它需要很少的参数 -arg1 -arg2 ...并从标准输入读取输入。
我的目标是在 parentScript.sh 中为 childScript.sh 提供一些输入:
...
childScript.sh -arg1 -arg2
????? < "input1"
????? < "input2"
...
另一种情况是我调用了几个程序,我希望它们像这样相互交谈:
...
program1 -arg1 -arg2
program2 -arg1 -arg9
(program1 > program2)
(program2 > program1)
etc...
...
这两种情况如何解决?谢谢
编辑: 更具体。我想制作自己的管道(命名或未命名)并使用它们连接多个程序或脚本,以便它们相互通信。
例如:program1 写入 program2 和 program3 并从 program2 接收。程序 2 写入程序 1 和程序 3 并从程序 1 接收。 program3 只接收表单 program1 和 program2。
【问题讨论】:
-
现在,这可以说是过于宽泛了。许多用于程序化管道构建的技术(例如递归函数执行组件)是否适用取决于您未提供的详细信息。 [此外,在已经提供答案之后以显着改变其含义的方式“澄清”一个问题并不是特别好的形式,因为它使那些先前的答案毫无用处]。
-
好点。我会做新的线程
-
????? < "input1"这行到底应该做什么?也许人们不理解您的问题的部分原因是您希望我们从极其不清楚的伪代码中直觉您的意图。 -
意思是??????是指向被调用脚本的东西,比如文件描述符
标签: bash redirect pipe file-descriptor