Bash如果条件不起作用

时间:2016-04-11 17:44:03

标签: bash if-statement

为什么这段代码不起作用?

#!/bin/bash
    if [ "$(ls | grep a | wc -l)" -gt 2 ]
        then
        echo "asdasda"
        fi

我应该加双引号吗?

新错误是:

line 5: syntax error near unexpected token 'fi'"

1 个答案:

答案 0 :(得分:0)

  • 2]2 ]
  • iffi,如果

工作代码:

if [ "$(ls | grep a | wc -l)" -gt 2 ]
    then
    echo "asdasda"
fi

字符串fi指定if语句的结尾。

参考:http://wiki.bash-hackers.org/syntax/ccmd/if_clause

编辑:OP已多次编辑他的帖子以纠正损坏的代码。

要回答OP的其他问题,是的,您使用双引号是正确的,因为它可以防止不必要的扩展或执行,但不会阻止功能。