在bourne shell中,带括号的if语句和不带括号的if语句有什么区别?



例如:

if $input = 'y'

原因

./test.sh: line 5: y: command not found

,

if [ $tmp = 'y' ]

不会导致错误?

不能求值条件的if语句的目的是什么?

if不计算任何东西。它只是执行谓词程序并对其返回代码进行操作。[实际上是一个执行少量条件并返回适当返回码的程序。

如果您不需要else分支,

[可以与不带if的联机程序一起使用:

$ [ 1 -eq 2 ] && echo "foo"
# -> no output

最新更新