如何将bash命令的输出作为参数传递给另一个?

问题描述:

我有一个程序返回给我一个文件名列表。我需要将这些文件的内容传递给另一个程序。如何将bash命令的输出作为参数传递给另一个?

我知道如何使用cat来传递内容:

cat file1 file2 file3 | some_program 

我想要做的是一样的东西:

list=`get_file_list` 
cat ${list} | some_program 

虽然做上面会简单地传递列表变量的内容而不是文件的内容。

+0

不,'cat $ {list}'连接'$ list'中的文件内容。如果这不是你想要的,我不明白你的问题。 – tripleee 2012-07-08 07:16:06

+0

'echo“$ list”| some_program'会将变量的内容传递给程序的标准输入。 – 2012-07-08 11:05:50

要传递的输出,一个程序到另一个你可以使用xargs的,例如一个名为myfile的文件

 find . -name "myfile*" -print | xargs grep "myword" $1 

这一个搜索*寻找他们的内部的关键。

+1

如果这是一个正确的答案,那么'some_program \'get_file_list \''是在这种特殊情况下完成这个更简单的方法。 – tripleee 2012-07-08 08:13:38