【发布时间】:2013-05-12 20:27:05
【问题描述】:
我在教程中看到了两种在 BASH shell 中为 if 语句执行语法的方法:
除非我在变量周围加上引号并添加额外的 [ 和 ],否则这将不起作用:
if [[ "$step" -eq 0 ]]
这个没有在变量周围加上引号就可以工作,并且不需要额外的 [ 和 ]:
if [ $step -ge 1 ] && [ $step -le 52 ]
哪个是正确的最佳实践?有什么区别?谢谢!
【问题讨论】:
-
“行不通”是什么意思。你有错误吗?意外行为?
-
是的,第一个错误是为了在 $step 周围加上双引号并在其周围添加额外的 [ 和 ]。
-
错误是什么?你拿到 $step 时的价值是多少?
-
两者都应该工作,除非
$step为空或包含空格
标签: bash if-statement syntax