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

Add*_*ddy 13 linux unix shell bash shell-scripting

我有一个命令可以产生这样的输出:

$./command1
word1 word2 word3

我想将这三个词作为参数传递给另一个命令,如下所示:

$ command2 word1 word2 word3

如何将 command1 输出作为三个不同的参数 $1 $2 $3 传递给 command2 ?

cha*_*aos 10

您可以使用xargs,-t标志xargs将是详细的并打印它执行的命令:

./command1 | xargs -t -n1 command2
Run Code Online (Sandbox Code Playgroud)

-n1定义传递给每次调用的最大参数command2。这将执行:

command2 word1
command2 word2
command2 word3
Run Code Online (Sandbox Code Playgroud)

如果您希望所有这些都作为一个command2使用调用的参数:

./command1 | xargs -t command2
Run Code Online (Sandbox Code Playgroud)

使用 3 个参数调用 command2:

command2 word1 word2 word3
Run Code Online (Sandbox Code Playgroud)