我只想在两个值之间插入数字,否则脚本会重复直到数字正确。
这是我的脚本,它不能正常工作:
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,最好使用算术表达式 ((...))
为了可读性和灵 active :
if ((number >= 2 && number <= 5)); then
# your code
fi
循环读取直到输入有效数字:
#!/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))
.
另见:
关于bash - 如何检查数字是否在shell中的范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50521798/