将命令结果插入可执行文件(一个命令)

将命令结果插入可执行文件(一个命令)

是否可以将命令(甚至命令链)的结果插入到一个命令中的可执行文件中?像这样的东西:

./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

如果您不介意“反向查找”写作。

相关内容