2013-08-02 34 views
-1

我正在寫一個Bash腳本。我有一個變量,它是一個浮點值。例如:獲取小數點前的值

x=2099.2 

我需要小數點前的值,即只有2099

+1

這可能幫助你,請接受的答案 http://stackoverflow.com/questions/8777070/linux-ksh-round-down-or-round-up-float-numbers –

+0

你也可以使用'$ {x %%。*}'去掉點中的所有內容。 – fedorqui

+0

什麼是'bsh'腳本?目前還不清楚你是否真的認爲'ksh'就像你的標籤建議或'bash'。 –

回答

1

您可以使用下面的shell參數擴展:

${x%%.*} 

這將刪除一切從第一個點。

親身體驗:

$ v=203.4 
$ echo ${v%%.*} 
203 

$ v=2.3.4 
$ echo ${v%%.*} 
2 

Bash Reference Manual → 3.5.3 Shell Parameter Expansion

$ {參數%%詞}

word被擴展爲一個模式,就像文件名擴展。如果模式匹配參數擴展值的尾部分,則擴展結果是刪除最長匹配模式的參數值。如果參數是'@'或'',則將模式刪除操作依次應用於每個位置參數,並且擴展是結果列表。如果參數是一個以'@'或''爲下標的數組變量,則模式刪除操作將依次應用於數組的每個成員,並且該擴展是結果列表。