當我嘗試在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.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
我需要解決這個問題,因爲我的大多數文件是按照這些數字命名。有了這個錯誤,我的腳本無法讀取這些文件。有什麼建議麼 ?
echo "${i/,/.}" # Recommend double quoting the variables.
會做的伎倆。我們在這裏完成的是外殼[ parameter expansion ]。
這可能是由您的區域設置造成的,具體是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
。
是的,也工作過 – PythonNoob
使用'echo $ {i /,/。}' –
'LANG = en_US; for i in $(seq 2.0 0.5 4.0);做LANG = en_US.UTF-8 echo「$ i」;完成'應該工作 – anubhava
感謝那是我學到的新東西。 – PythonNoob