如何在bash中将输出作为命令行参数传递?

时间:2015-04-08 14:50:35

标签: bash io-redirection

我有两步bash命令:

L=`wc -l testfile | cut -d' ' -f1`
myprogram testfile $L testfile.out

长话短说,myprogram需要将行计数作为输入。

我希望将其合并为一行。

这样做有效,因为使用重定向|-会将stdout流作为文件传递,而不是字符串。

wc -l testfile | cut -d' ' -f1 | myprogram testfile - testfile.out

有没有办法将它合并为一行?

1 个答案:

答案 0 :(得分:5)

使用流程替换:

myprogram testfile $(wc -l < testfile) testfile.out
                   ^^^^^^^^^^^^^^^^^^^

这样,wc -l < testfile与程序调用一起进行评估,并且两个命令组合在一起。

注意wc -l < file只返回数字,因此您无需执行cut或任何其他操作来清理输出。