if [[ $GreaterThanTwenty==1 && $LessThanThirty==1 ]]
then
echo "within limits"
else
echo "Outside limits"
fi
echo $GreaterThanTwenty
echo $LessThanThirty
为什么在限制内触发即使回声显示此时LessThanThirty实际上是0?bash,2子句if语句
if [[ $GreaterThanTwenty==1 && $LessThanThirty==1 ]]
then
echo "within limits"
else
echo "Outside limits"
fi
echo $GreaterThanTwenty
echo $LessThanThirty
为什么在限制内触发即使回声显示此时LessThanThirty实际上是0?bash,2子句if语句
您应该使用以下之一来比较算术值:-eq,-ne,-lt,-le,-gt或-ge,表示等于,不等于,小于,等于,大于等于分别大于或等于。
参考:http://www.ibm.com/developerworks/library/l-bash-test/index.html
因此$ GreaterThanTwenty == 1应该是$ GreaterThanTwenty -eq 1? – confusified
是的,这是事实。 – Anshu
你不使用你发布的代码的任何“LessThanTwenty”变量,修改您的变量名。 – Nelson
'=='做字符串比较,使用'-eq'。或者你可能会更好地用'[[$ original -gt 20 && $ original -lt 30]]'开始。道歉,错字 – Kevin
现在修复。 – confusified