我想验证输入的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