2016-03-16 59 views
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 

輸出如何能做到這一點嗎?

回答

4

如果要提供在陣列中使用的所有元素:

parallel echo ::: ${x[@]} 
+4

我想在未來任何數組元素包含空格的情況下,最好使用'「$ {x [@]}」'' 'x =(「0.1 + 6」「0.2 - b」「0.5 + a」)' –

2

來源: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