【问题标题】:Unix bash scripting and using the test -z scriptUnix bash 脚本和使用 test -z 脚本
【发布时间】:2013-06-16 02:15:37
【问题描述】:

所以我用这段代码编写了一个名为 MYSCRIPT 的脚本:

if test -z $1 ; then
  echo "rm: missing operand"
  echo "'try rm --help'" for more information.
fi

根据我的理解,它的意思是:“如果 $1 参数不存在,则回显:“rm:缺少操作数”。

然而,如果键入“sh MYSCRIPT -i”,它仍然会回显这一点。当然 $1 参数现在等于某个值(它是 -i)所以它应该运行?

【问题讨论】:

    标签: unix if-statement scripting sh


    【解决方案1】:

    这是一种方法,但可能不是检查给定参数是否为空的最佳方法。

    我建议你使用这样的东西,计算给定参数的数量:

    #!/bin/bash
    
    [ $# -eq 0 ] && echo "no arguments given" && exit
    
    echo "$1 is the input"
    

    测试

    $ ./test
    no arguments given
    $ ./test a
    a is the input
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多