Linux
如何將命令輸出作為多個參數傳遞給另一個命令
我有一個產生如下輸出的命令:
$./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