zoukankan      html  css  js  c++  java
  • Linux shell if [ -n ] 正确使用方法

    if [ str1 = str2 ]       当两个串有相同内容、长度时为真 
    if [ str1 != str2 ]      当串str1和str2不等时为真 
    if [ -n str1 ]       当串的长度大于0时为真(串非空) 
    if [ -z str1 ]        当串的长度为0时为真(空串) 
    if [ str1 ]         当串str1为非空时为真

    shell 中利用 -n 来判定字符串非空。

    错误用法:

    ARGS=$*

    if [ -n $ARGS  ]

    then

       print "with argument"

    fi

    print " without argument"

    不管传不传参数,总会进入if里面。

    原因:因为不加“”时该if语句等效于if [ -n ],shell 会把它当成if [ str1 ]来处理,-n自然不为空,所以为正。

    正确用法:需要在$ARGS上加入双引号,即"$ARGS".

    ARGS=$*

    if [ -n "$ARGS"  ]

    then

       print "with argument"

    fi

    print " without argument"

  • 相关阅读:
    CodeForces
    hdu4003 树形dp
    hdu2196
    poj2486
    hdu1502 树形dp入门题
    cf 686D
    bzoj2763 分层图
    hdu4424 并查集+贪心+思维
    poj1734 最小环+输出路径
    集训题解1
  • 原文地址:https://www.cnblogs.com/dyh004/p/6347226.html
Copyright © 2011-2022 走看看