Xargs
xargs -I 參數的確切格式?
確實,我想知道“-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
輸入沒有用)。