2014-02-05 173 views
0

我有一個腳本,它接受來自0-1的一個數字作爲其選項之一。我想測試這些不同的設置做什麼,所以我想循環所有這些。我想生成的數字與此:通過腳本設置循環執行

for ((i=0; i <= 10; i += 1)); do echo "scale=1; ${i}/10"| bc; done 

然而,當我嘗試這個bc不評估scale=1; ${i}/10它是採取通過設置之前,所以我最終使用的scale=1; ${i}/10而不是實際的數字我想:

for ((i=0; i <= 10; i += 1)); do Myscript --input testdata --setting "scale=1; ${i}/10"| bc; done 

回答

2

你需要,如果你w至命令替代echo "scale=1; ${i}/10" | bc螞蟻將它作爲文字文本:

for ((i=0; i <= 10; i += 1)); do 
    Myscript --input testdata --setting $(echo "scale=1; ${i}/10"| bc) 
done 

然而,這將是更容易做到以下幾點:

for i in 0 0.{1..9} 1; do 
    Myscript --input testdata --setting $i 
done 
2

試試這個循環:

for ((i = 0; i <= 10; i++)); do 
    Myscript --input testdata --setting "$(bc -l <<< "scale=1; ${i}/10")" 
done