如何在GNU並行數組中提供命令?例如,我有這樣的數組:GNU並行數組?
x=(0.1 0.2 0.5)
,現在我想將它在parallel
parallel echo ::: $x
這不起作用喂一些命令。它正在喂所有的參數單呼,因爲它打印
0.1 0.2 0.5
代替
0.1
0.2
0.5
這是
parallel echo ::: 0.1 0.2 0.5
輸出如何能做到這一點嗎?
如何在GNU並行數組中提供命令?例如,我有這樣的數組:GNU並行數組?
x=(0.1 0.2 0.5)
,現在我想將它在parallel
parallel echo ::: $x
這不起作用喂一些命令。它正在喂所有的參數單呼,因爲它打印
0.1 0.2 0.5
代替
0.1
0.2
0.5
這是
parallel echo ::: 0.1 0.2 0.5
輸出如何能做到這一點嗎?
如果要提供在陣列中使用的所有元素:
parallel echo ::: ${x[@]}
來源:http://www.gnu.org/software/parallel/man.html
示例:使用shell變量 當使用shell變量,你需要正確地引用他們,因爲他們否則可能會在空間上分割。
通知的區別:
V=("My brother's 12\" records are worth <\$\$\$>"'!' Foo Bar)
parallel echo ::: ${V[@]} # This is probably not what you want
和:
V=("My brother's 12\" records are worth <\$\$\$>"'!' Foo Bar)
parallel echo ::: "${V[@]}"
當包含特殊字符(如空格),你可以引述他們的實際命令使用變量使用''$ VAR''或使用''和-q:
V="Here are two "
parallel echo "'$V'" ::: spaces
parallel -q echo "$V" ::: spaces
我想在未來任何數組元素包含空格的情況下,最好使用'「$ {x [@]}」'' 'x =(「0.1 + 6」「0.2 - b」「0.5 + a」)' –