如何检查数字是否在外壳程序范围内 [英] How to check if a number is within a range in shell
本文介绍了如何检查数字是否在外壳程序范围内的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我只想在两个值之间插入数字,否则脚本会重复执行直到正确的数字为止.
I want to just insert number between two values, and otherwise the script repeated until correct number.
这是我的脚本,无法正常工作:
This is my script and it is not work correctly:
validation(){
read number
if [ $number -ge 2 && $number -ls 5 ]; then
echo "valid number"
break
else
echo "not valid number, try again"
fi
}
echo "insert number"
validation
echo "your number is" $number
推荐答案
如果您使用的是Bash,则最好使用算术表达式((...))
以获得可读性和灵活性:
If you are using Bash, you are better off using the arithmetic expression, ((...))
for readability and flexibility:
if ((number >= 2 && number <= 5)); then
# your code
fi
要循环阅读直到输入有效数字:
To read in a loop until a valid number is entered:
#!/bin/bash
while :; do
read -p "Enter a number between 2 and 5: " number
[[ $number =~ ^[0-9]+$ ]] || { echo "Enter a valid number"; continue; }
if ((number >= 2 && number <= 5)); then
echo "valid number"
break
else
echo "number out of range, try again"
fi
done
((number >= 2 && number <= 5))
也可以写为((2 <= number <= 5))
.
另请参阅:
- Test whether string is a valid integer
- How to use double or single brackets, parentheses, curly braces
这篇关于如何检查数字是否在外壳程序范围内的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文