if语句不能用于Bash脚本

时间:2016-12-31 06:19:58

标签: linux bash shell unix syntax-error

我无法理解为什么这个简单的if语句检查字符串是否为空无效。它给了我:

  

语法错误接近意外令牌`然后'

#!/bin/bash
str="Hello World!"
if[ ! -z "$str"]; then
    echo "str is not empty"
fi

我在我的电脑和online editor上尝试了它,但它显示了同样的问题。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

#!/bin/bash
str="Hello World!"
if [ ! -z "$str" ]; then
    echo "str is not empty"
fi

也许, 在“if”语句后插入空格。 并且,在“]”之前。

答案 1 :(得分:1)

对于测试,

[[ ]]优于[ ]

#!/bin/bash

str="Hello World!"
if [[ ! -z $str ]]; then
  echo "str is not empty"
fi

缩短形式:

#!/bin/bash

str="Hello World!"
[[ ! -z $str ]] && echo "str is not empty"