我想驗證輸入的ksh,並且想知道確定字符串是否是有效數字的最簡單方法。如何確定一個字符串是否是ksh的數字
3
A
回答
7
有一展身手:
case $INPUT in
+([0-9])*(.)*([0-9]))
# Variable is numeric
;;
*)
# Nope, not numeric
;;
esac
0
[ $input -ge 0 -o $input-lt 0 ] 2>/dev/null && echo "numeric"
這將檢查輸入是數字(正整數還是負整數)並且打印數字(如果是)。
1
此修復弗洛伊德式錯誤的回答包括可選的,領先的 - 或「+」號,允許開頭的十進制數「」「」 (不包括前導0),並排除包含多個「。」的數字。 (例如:「12 ...... 34」):
case $INPUT in
{,1}([-+])+([0-9]){,1}(.)*([0-9])|{,1}([-+]).+([0-9]))
# Variable is numeric
;;
*)
# Nope, not numeric
;;
esac
0
簡單,如果你只是想知道如果字符串組成的數字:
case $INPUT in
[0-9][0-9]*)
# Variable contains only digits
;;
*)
# Variable contains at least one non-digit
;;
esac
0
您可以使用字符串操作測試,像這樣:
if [[ "${input%%*()+([0-9])?(.)*([0-9])}" = "" ]]; then
print "Is numeric"
fi
0
我看到這裏這個答案(https://www.unix.com/302299284-post9.html),並已在Solaris 10做工作KSH-88的整數:
x=2763
if [[ $x == +([0-9]) ]]; then
print integer
else
print nope
fi
相關問題
- 1. 如何確定一個字符串是否包含非字母數字字符?
- 2. AutoHotKey如何確定複製的字符串是否是數字?
- 3. 如何確定一個字符串是否是C#中的數字
- 4. 如何確定一個字符串是否包含另一個字符串
- 5. 確定NSString的第一個字符是否是一個數字
- 6. 確定一個字符串是不是另一個字符串
- 7. 確定字符串是否以另一個字符串結尾
- 8. 確定一個字符串是否包含數字序列
- 9. 確定是否一個字符串包含一個字
- 10. 如何確定字符串中的單詞是否是雙字?
- 11. ksh:連接一個非常長的字符串是否安全
- 12. 如何確定一個字符串是否是一個有效的變量名?
- 13. 確定一個字符串是否包含數組中的子字符串[NODEJS]
- 14. KSH檢查字符串是否以子字符串開頭
- 15. 確定一個字符串是否包含任何一組字符串
- 16. 如何確定一個字符串是否有效JSON?
- 17. 函數來確定一個字符串是否只包含另一個字符
- 18. 確定一個字符串是否是有效的HTML代碼
- 19. 如何確定字符串的第一個字符是否是VB.NET中的數字?
- 20. 如何檢查一個字符串是否是數字?
- 21. 如何確定字符串是否爲數字?
- 22. C#如何確定一個數字是否是另一個數字的倍數?
- 23. 確定一個字符串是否包含另一個字符串
- 24. 確定一個字符串是否包含一個子字符串
- 25. 確定一個字符串是否包含特定位置的子字符串
- 26. C++如何確定char是否是一個字中的第一個字符
- 27. 如何找出字符串的第一個字符是否是數字?
- 28. 如何編寫代碼來確定一個字符是否在字符串中?
- 29. 如何確定一個字符串是否包含來自另一個字符串的字
- 30. 我可以確定一個字符串是否是MongoDB ObjectID?
+1對於ksh通配符'+(..),*(...)'! – shellter 2012-02-09 19:27:59
ksh是否將通配符放在之前而不是像在「常規」正則表達式中那樣? – Steve 2012-02-09 19:52:36
此解決方案似乎認爲123 ... 99作爲數字 – Ruchi 2012-02-09 19:58:21