是否可以将命令(甚至命令链)的结果插入到一个命令中的可执行文件中?像这样的东西:
./a.out < echo 0
或者是否有必要这样做:
echo 0 > input.txt
./a.out < input.txt
答案1
当您希望程序a.out
读取命令的输出echo 0
作为其输入时,您可以这样做:
echo 0 | ./a.out
或者(这是bash
具体的):
./a.out < <(echo 0)
this>
和 this<
是重定向运算符,>
是输出和<
输入的重定向。
这:
echo 0 > input.txt
将输出重定向echo
到名为的文件input.txt
这:
./a.out < input.txt
重定向./a.out
;的输入来源是 的内容input.txt
。
对于多个命令,请使用复合命令:
{ echo 0; cat test.txt; } | ./a.out
答案2
请注意,有一个更简单的代码(在 bash 中):
./a.out <<<"0"
甚至:
<<<"0" ./a.out
如果您不介意“反向查找”写作。