我想验证输入的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. 如何确定一个字符串是否是C#中的数字
- 3. 确定一个字符串是不是另一个字符串
- 4. 确定NSString的第一个字符是否是一个数字
- 5. 确定一个字符串是否包含数字序列
- 6. 确定是否一个字符串包含一个字
- 7. 确定一个字符串是否包含数组中的子字符串[NODEJS]
- 8. 如何确定一个字符串是否是一个有效的变量名?
- 9. KSH检查字符串是否以子字符串开头
- 10. 确定一个字符串是否包含任何一组字符串
- 11. 如何确定一个字符串是否有效JSON?
- 12. 确定一个字符串是否是有效的HTML代码
- 13. 如何确定字符串是否为数字?
- 14. C#如何确定一个数字是否是另一个数字的倍数?
- 15. C++如何确定char是否是一个字中的第一个字符
- 16. 如何找出字符串的第一个字符是否是数字?
- 17. 如何编写代码来确定一个字符是否在字符串中?
- 18. 如何确定一个字符串是否包含来自另一个字符串的字
- 19. 我试图确定一个字符串是否是回文
- 20. 给定一个字符串,如何检查前几个字符是否是另一个字符串? C++
- 21. 无法确定一个字符串当前是否是一个整数
- 22. 确定一个字符串是否包含它内部的base64字符串
- 23. Java确定字符串中的每个字符是否是字母
- 24. 如何知道给定的字符串是否是来自Java中另一个字符串的子字符串
- 25. 如何检查给定的Python字符串是否是另一个字符串的子字符串?
- 26. 如何获得一个字符串是否是T-SQL中的一个数字
- 27. 确定一个字符串是否只有使用函数的数字
- 28. 如何检查字符串中的第一个字母是否是数字
- 29. 如何确定是否一个字符串包含重复字母
- 30. C - 检查字符串是否是另一个字符串的子字符串
+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