尝试创建一个bash脚本,该脚本设置一个值供以后在脚本中使用,具体取决于我在运行它时发送的内容; 即./script.sh 24
代码:
### Setting values depending on input
#
# If value is between 7 and 13
if [[ $1 -le 13 || $1 -ge 7 ]]; then
#set value to
VALUE=7
# else if value is between 14 and 29
elif [[ $1 -le 29 || $1 -ge 14 ]]; then
#else set value to
VALUE=14
# else if value is larger than 30
elif [[ $1 -le 30 ]]; then
#Set value to VALUE=30
#else
# echo nope
fi
# This is just for showing what's going on
echo "input: $1"; echo "value: $VALUE"
# Do other stuff here...
但是我无法使其正常工作,无论我在脚本启动时发送什么,它都只能将“值”设置为7。 bash是否以任何特殊顺序读取值?当我使用./script.sh 24运行它时,我给出的是“ value = 7”,但是(在我看来)应该是“ value = 14”
答案 0 :(得分:2)
在第一次比较中:
$1 -le 13 || $1 -ge 7
您正在检查值是否小于13或大于7。所有自然数均符合以下条件,例如:1小于13,100为avobe 7,而10小于13和avobe7。因此,您始终输入第一分支。
也许您正在寻找大于7且小于13的数字:
$1 -le 13 && $1 -ge 7