直接在我的历史记录中执行命令时遇到问题。它似乎是从我的历史中取出字符串,但是xargs
不执行它而只是打印它。我该如何解决这个问题?
$ history | grep 6200 | head -n 1 | awk '{s=""; for (i = 2; i <= NF; i++) s = s $i " "; print s}' | xargs
mplayer http://sfstream1.somafm.com:6200
$
正如您所看到的,第二行是我从运行命令得到的输出,但我希望命令实际上也可以执行。
答案 0 :(得分:2)
来自man xargs
:
xargs从标准输入读取项目,由空格分隔(可以 用双引号或单引号或反斜杠或换行符保护,并执行命令(默认为
/bin/echo
)
xargs
不会运行您管道的内容,它会将其转换为您提供的命令的参数,如果没有提供,则为echo
。使用xargs
代替bash
:它将运行命令进入其标准输入。