是否有可能在上一个命令ASSUMING的输出上运行一个linux命令,前一个命令是第一个?

时间:2015-02-17 16:43:16

标签: linux bash

我知道我可以使用``来获取命令的输出,例如:

echo `ls`

但是我有办法首先使用ls命令,然后在其上运行echo吗?例如:ls <some special redirection> echo?我试过了ls > echo而它没有做我想做的事。

我要问的原因是,有时我会编写复杂的命令来获取某些输出,例如:bjobs -u username01 | grep normal | awk '{print $1}'是一个简单的“复杂”命令(有时它们是6或7一起更改)。现在,我目前要做的事情

Mycommand `(complicated string of commands)`

但我更愿意做

(complicated string of commands) <some special redirection> Mycommand

这可能吗?

2 个答案:

答案 0 :(得分:2)

您可以使用xargs

ls | xargs echo

答案 1 :(得分:0)

如果您需要对结果采取更多操作,可以解析它们:

应该避免解析ls,只需重写示例:

ls | while read file; do
   echo I found ${file}
done 

这种结构对于更难解析非常有用:

echo "red ford 2012
blue mustang 1998" | while read color car year; do
   echo "My ${color} ${car} is from the year ${year}"
done