Bash 如何检查shell中的数字是否在范围内
我只想在两个值之间插入数字,否则脚本会重复,直到正确的数字 这是我的脚本,无法正常工作:Bash 如何检查shell中的数字是否在范围内,bash,shell,if-statement,sh,Bash,Shell,If Statement,Sh,我只想在两个值之间插入数字,否则脚本会重复,直到正确的数字 这是我的脚本,无法正常工作: 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
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
您的if声明:
if [ $number -ge 2 && $number -ls 5 ]; then
应该是:
if [ "$number" -ge 2 ] && [ "$number" -le 5 ]; then
所作的修改:
- 考虑引用变量
不是有效的比较运算符,请使用ls
le
- 用
分隔单括号条件表达式和&
#/usr/bin/env bash
您的if语句:
if [ $number -ge 2 && $number -ls 5 ]; then
if [ $number -ge 2 && $number -ls 5 ]; then
应该是:
if [ "$number" -ge 2 ] && [ "$number" -le 5 ]; then
所作的修改:
- 考虑引用变量
不是有效的比较运算符,请使用ls
le
- 用
分隔单括号条件表达式和&
#/usr/bin/env bash
if [ $number -ge 2 && $number -ls 5 ]; then
应该是
if [[ $number -ge 2 && $number -le 5 ]]; then
有关详细信息,请参见帮助[
应该是
if [[ $number -ge 2 && $number -le 5 ]]; then
有关详细信息,请参见
帮助[[
如果您使用的是Bash,最好使用算术表达式,(…)
,以获得可读性和灵活性:
if ((number >= 2 && number <= 5)); then
# your code
fi
如果((number>=2&&number=2&&number=2&&number=2&&number如果使用Bash,最好使用算术表达式,(…)
以提高可读性和灵活性:
if ((number >= 2 && number <= 5)); then
# your code
fi
if((number>=2&&number=2&&number=2&&number2)需要更改
塞尔吉奥建议
如果[“$number”-ge 2]&&[“$number”-le 5];则
不需要中断
只在for、while或until循环中有意义
2.需要作出改变
塞尔吉奥建议
如果[“$number”-ge 2]&&[“$number”-le 5];则
不需要中断
只在for、while或until循环中有意义
试试下面的代码
echo "Enter number"
read input
if [[ $input ]] && [ $input -eq $input 2>/dev/null ]
then
if ((input >= 1 && input <= 4)); then
echo "Access Granted..."
break
else
echo "Wrong code"
fi
else
echo "$input is not an integer or not defined"
fi
echo“输入号码”
读取输入
如果[[$input]]&&[$input-eq$input 2>/dev/null]
然后
如果((输入>=1&&input请尝试下面的代码
echo "Enter number"
read input
if [[ $input ]] && [ $input -eq $input 2>/dev/null ]
then
if ((input >= 1 && input <= 4)); then
echo "Access Granted..."
break
else
echo "Wrong code"
fi
else
echo "$input is not an integer or not defined"
fi
echo“输入号码”
读取输入
如果[[$input]]&&[$input-eq$input 2>/dev/null]
然后
如果((input>=1&&input请说明运行此脚本时出现的错误或问题。添加一个shebang,然后将脚本粘贴到此处:请说明运行此脚本时出现的错误或问题。添加一个shebang,然后将脚本粘贴到此处:在Debian 9.8上运行bash
4.4-5
。((2)在Debian 9.8上运行bash4.4-5
。if((2)我的一位同事说,。)