如何将bash命令的输出作为参数传递给另一个?
问题描述:
我有一个程序返回给我一个文件名列表。我需要将这些文件的内容传递给另一个程序。如何将bash命令的输出作为参数传递给另一个?
我知道如何使用cat
来传递内容:
cat file1 file2 file3 | some_program
我想要做的是一样的东西:
list=`get_file_list`
cat ${list} | some_program
虽然做上面会简单地传递列表变量的内容而不是文件的内容。
答
要传递的输出,一个程序到另一个你可以使用xargs的,例如一个名为myfile的文件
find . -name "myfile*" -print | xargs grep "myword" $1
这一个搜索*寻找他们的内部的关键。
+1
如果这是一个正确的答案,那么'some_program \'get_file_list \''是在这种特殊情况下完成这个更简单的方法。 – tripleee 2012-07-08 08:13:38
不,'cat $ {list}'连接'$ list'中的文件内容。如果这不是你想要的,我不明白你的问题。 – tripleee 2012-07-08 07:16:06
'echo“$ list”| some_program'会将变量的内容传递给程序的标准输入。 – 2012-07-08 11:05:50