【发布时间】:2021-07-14 00:10:17
【问题描述】:
我正在尝试处理“预期的整数表达式”错误。 我需要我的输入只是整数。
我做了一个while循环来检查它,但即使它是一个整数,它也会进入循环。
这是我的代码:
read -p "Number: " number
while [[ ! "$number" =~ '[0-9]' ]];
do
read -p "Reenter the number: " number
done
还有其他方法吗?
【问题讨论】:
-
您的问题的答案当然是正确的,但您不需要正则表达式。通配符模式也可以:如果
number不完全包含数字,则[[ $number == *[^0-9]* ]]为真。我希望您知道,这两个版本(答案中的正则表达式解决方案和我的通配符解决方案)都会将负数归类为非数字。
标签: bash validation input integer