2013-07-28 82 views
3

在bash shell中,我們如何判斷變量是字符串還是數字?在這裏,數字可以是整數或浮點數。這個鏈接"How to judge a variable's type as string or integer"似乎只能工作整數。基於提到的問題bash - 如何判斷變量是字符串還是數字

+1

你沒有嘗試適應,對於浮動? – Mat

+0

可能的重複[如何測試變量是否是bash中的數字?](http://stackoverflow.com/questions/806906/how-do-i-test-if-a-variable-is-a- number-in-bash) –

回答

3

你可以擴大所提出的正則表達式,取決於所需的數字格式(S):

[[ $value =~ ^[0-9]+(\.[0-9]+)?$ ]]將承認2或2.4作爲一個數字,但是2.或者.4作爲一個字符串。

[[ $value =~ ^(\.[0-9]+|[0-9]+(\.[0-9]*)?)$ ]]將承認所有2,2.4,2 .4作爲數字

+0

更確切地說是正確的!很酷的傢伙。 – warem

4

,下面做這項工作對我來說:

[[ $value =~ ^[0-9]+(\.[0-9]+)?$ ]] 
+1

您需要轉義'.',否則會匹配'2c2'等。 – cmbuckley

+0

正確的,我在我的文章中,它似乎是沒有它的呈現,謝謝你的評論,更新我的解決方案 –

+0

它確實工作。謝謝。 – warem

相關問題