我知道我可以使用``
来获取命令的输出,例如:
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
这可能吗?
答案 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