检查Unix参数是否非空

13 浏览
0 Comments

检查Unix参数是否非空

我第一次尝试Unix shell脚本编程,现在我正在编写一个脚本,在这个脚本中,我希望其中的三个参数中的2个参数是可选的。然而,如果用户没有输入这些参数,我需要使用默认值。我应该如何正确地表达以下的意思:\n

$argument = $2
if($argument  == "")
    $argument = "defaultVal"

\n谢谢!

0
0 Comments

在Unix环境中,我们经常需要检查参数是否为空。下面是一个用于检查Unix参数是否非空的示例代码:

if [ "x$2" == "x" ]; then

$argument="default";

else

$argument=$2;

fi

这段代码的目的是检查第二个参数是否为空。如果为空,则将变量$argument赋值为"default";否则,将其赋值为参数$2的值。这种技巧是为了防止空参数被当作空标记而产生语法错误。

然而,有人提出是否仍然需要这个技巧。在bash和dash中,使用if [ "$2" = "" ]同样可以正常工作。这是因为这些shell会将""识别为空标记,不会产生语法错误。

有人表示在使用空参数时遇到过问题,因为空标记被认为是一个空标记而产生了语法错误。因此,可以说这个技巧仍然是必要的。

这两个答案都很好地解决了问题,我只是接受了第一个能工作的答案!感谢你们两位的快速回复!

0
0 Comments

检查Unix参数是否为空的问题出现的原因是需要在Unix脚本中判断一个参数是否为空。在上述内容中,通过设置变量`argument`的默认值为`default value`来实现。

解决方法是使用`${2:-default value}`这个语法来检查参数是否为空。如果参数为空,则使用默认值`default value`。这样可以确保在使用参数之前,首先进行非空检查。

以上是关于检查Unix参数是否为空的问题的解决方法。

0