代码之家  ›  专栏  ›  技术社区  ›  Steve Bennett

bash中的[[-n$var]]和[[$var]]之间的差异

  •  0
  • Steve Bennett  · 技术社区  · 8 年前

    bash中这两个选项之间有区别吗:

    # 1
    if [[ "$VAR" ]]; then 
    
    #2
    if [[ -n "$VAR" ]]; then 
    

    如果没有,是否真的需要 -n 选择?

    1 回复  |  直到 8 年前
        1
  •  5
  •   Ignacio Vazquez-Abrams    8 年前

    自从 [[ test 关于变量基本上没有需要 -n 是的。

    $ foo=-n
    $ [[ $foo ]] ; echo $?
    0
    $ [[ -n ]] ; echo $?
    bash: unexpected argument `]]' to conditional unary operator
    bash: syntax error near `]]'
    $ foo="-z bar"
    $ [[ $foo ]] ; echo $?
    0
    $ [ $foo ] ; echo $?
    1
    
    推荐文章