2016-07-19 13 views
1

當我嘗試在0.5的增量下運行我的bash腳本中的for循環時。該腳本給出了德國浮動系統的輸出。 如:德文到英文浮點系統在bash中

for i in $(seq 2.0 0.5 4.0) 
do 
echo $i 
done 

它給人的輸出是:

2,0 
2,5 
3,0 
3,5 
4,0 

我需要解決這個問題,因爲我的大多數文件是按照這些數字命名。有了這個錯誤,我的腳本無法讀取這些文件。有什麼建議麼 ?

+0

使用'echo $ {i /,/。}' –

+2

'LANG = en_US; for i in $(seq 2.0 0.5 4.0);做LANG = en_US.UTF-8 echo「$ i」;完成'應該工作 – anubhava

+0

感謝那是我學到的新東西。 – PythonNoob

回答

0
echo "${i/,/.}" # Recommend double quoting the variables. 

會做的伎倆。我們在這裏完成的是外殼[ parameter expansion ]

1

這可能是由您的區域設置造成的,具體是LC_NUMERIC

在我的系統,在這裏我沒有看到你所描述的症狀:

$ locale | grep LC_NUMERIC 
LC_NUMERIC="en_US.UTF-8" 

我不知道你已經安裝在你的系統上的哪些語言環境。推測你的默認語言環境使用逗號作爲小數。 "C"區域設置使用.

更改

seq 2.0 0.5 4.0 

LC_NUMERIC=C seq 2.0 0.5 4.0 

應該做的伎倆。

如果你想在一般使用.而非,,你可以考慮在你的shell啓動文件(.bashrc,或.bash_profile,或者別的什麼)設置$LC_NUMERIC

+0

是的,也工作過 – PythonNoob