Xargs

xargs -I 參數的確切格式?

  • November 8, 2014

確實,我想知道“-I”參數(字元串、變體等)的確切格式

對於這樣的腳本,

seq 15 | xargs -I num

seq 15 | xargs -I num bash -c "echo num"

將工作

這裡的’num’我認為是bash -c“”中執行腳本的參數,而我不確定將num引入bash時的格式

嘗試

seq 15 | xargs -I num bash -c "name=num; echo name"

失敗時將其視為字元串。

嘗試

seq 15 | xargs -I num bash -c "name=num; echo $name"

也沒有工作。

我只是想嘗試使用多執行緒--max-procs來限制執行緒數,雖然我不太確定這樣的問題,但我想這可能是關於 ‘=’ 的事情。我怎樣才能讓它按我的意願工作。

num只是被 seq. 輸出的每個數字字元串替換。

您嘗試分配到name正確位置但顯示您已經轉義$

seq 15 | xargs -I num bash -c "name=num; echo \$name"

如果您嘗試過:

name=hallo; seq 15 | xargs -I num bash -c "name=num; echo $name"

你可能已經註意到了。

Anthon 已經解釋了你的錯誤。我想補充一點,這個bash -c ''案例有更好的解決方案:

seq 15 | xargs -L 1 bash -c 'name=$1; echo $name' foo

這更好,因為它更靈活。您可以傳遞多個參數(可能對seq輸入沒有用)。

引用自:https://unix.stackexchange.com/questions/166758