Linux

如何將命令輸出作為多個參數傳遞給另一個命令

  • February 7, 2020

我有一個產生如下輸出的命令:

$./command1

word1 word2 word3

我想將這三個詞作為參數傳遞給另一個命令,如下所示:

$ command2 word1 word2 word3

如何將 command1 輸出作為三個不同的參數傳遞 $ 1 $ 2 $3 到 command2 ?

您可以使用xargs,-t標誌xargs將是詳細的並列印它執行的命令:

./command1 | xargs -t -n1 command2

-n1定義傳遞給每次呼叫的最大參數command2。這將執行:

command2 word1
command2 word2
command2 word3

如果您希望 all 作為一次呼叫的參數command2

./command1 | xargs -t command2

使用 3 個參數呼叫 command2:

command2 word1 word2 word3

您想要“命令替換”,即:將一個命令的輸出嵌入到另一個命令中

command2 $(command1)

傳統上,這也可以這樣做:

command2 `command1`

但通常不建議使用這種用法,因為您不能嵌套它們。

例如:

test.sh:
#!/bin/bash
echo a b c

test2.sh

#!/bin/bash
echo $2

採用:

./test2.sh $(./test.sh)
b

引用自:https://serverfault.com/questions/641983