我编写了两个简单的c程序,program1输出一个预定义的字符串,program2接受一个字符串作为参数并将该字符串写入一个文件。
我要做的是获取program1的输出并将其传递给program2。我已经完成了bash教程,唯一能找到的解决方案是:
program1 | program2
这应该是可行的,但我有一个隔离错误。所以我试了一下,结果成功了。
program1 | program2 abc
正如您所猜测的,这会导致一个包含字符串“abc”的输出文件。program1 program2看起来很简单,但我想我遗漏了什么?
最佳答案
|
使右侧的程序读取(作为stdin)左侧程序的stdout。
但是你的program2
根本不读stdin。它读取参数(不是stdin)。
你应该:
program2 `program1`
bash计算program1(当它看到反引号时),并将其作为参数传递给program2。
在我的键盘上,倒勾(`)在“1”键的左边,在我的左制表键的上面。
编辑:
如果
program1
的字符串输出包含空格,并且希望将整个字符串解释为一个参数,请用“”或“”引用该字符串:program2 "`program1`"