我习惯了 csh,所以不得不使用 bash 有点令人恼火。这段代码有什么问题?
if[$time > 0300] && [$time < 0900]
then
$mod=2
else
$mod=0
fi
按照标准应该是
if [ "$time" -gt 300 ] && [ "$time" -lt 900 ]
then
mod=2
else
mod=0
fi
在普通的 shell 脚本中,您使用[
and ]
测试值。不存在类似算术的比较运算符>
and <
in [ ]
, only -lt
, -le
, -gt
, -ge
, -eq
and -ne
.
当你在狂欢时,[[ ]]
是首选,因为变量不受分割和路径名扩展的影响。您也不需要扩展变量$
用于算术比较。
if [[ time -gt 300 && time -lt 900 ]]
then
mod=2
else
mod=0
fi
另外,使用(( ))
算术比较可能最适合您的偏好:
if (( time > 300 && time < 900 ))
then
mod=2
else
mod=0
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)