我习惯了csh,所以这有点刺激,不得不使用bash.这段代码有什么问题?
if[$time > 0300] && [$time < 0900]
then
$mod=2
else
$mod=0
fi
Run Code Online (Sandbox Code Playgroud)
kon*_*box 16
按标准应该是
if [ "$time" -gt 300 ] && [ "$time" -lt 900 ]
then
mod=2
else
mod=0
fi
Run Code Online (Sandbox Code Playgroud)
在普通的shell脚本中,您可以使用[和]测试值.有没有算术样比较运营商如>和<中[ ],只有-lt,-le,-gt,-ge,-eq和-ne.
当你在bash中时,[[ ]]首选,因为变量不受分裂和路径名扩展的影响.您也不需要使用$算术比较扩展变量.
if [[ time -gt 300 && time -lt 900 ]]
then
mod=2
else
mod=0
fi
Run Code Online (Sandbox Code Playgroud)
此外,(( ))用于算术比较可能最适合您的偏好:
if (( time > 300 && time < 900 ))
then
mod=2
else
mod=0
fi
Run Code Online (Sandbox Code Playgroud)