0

所以我用这段代码写了一个名为 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)所以它应该运行吗?

4

1 回答 1

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
于 2013-06-19T14:02:25.863 回答