Shell 检查Unix参数是否为非空

Shell 检查Unix参数是否为非空,shell,unix,parameters,Shell,Unix,Parameters,可能重复: 我第一次尝试Unix shell脚本编写,在我现在正在编写的脚本中,我希望脚本的3个参数中有2个是可选的。但是,如果用户没有输入参数,我需要使用默认值。我怎样才能恰当地说出一些基本意思: $argument = $2 if($argument == "") $argument = "defaultVal" 谢谢 试试这个: if [ "x$2" == "x" ]; then $argument="default"; else $argument=$2;

可能重复:

我第一次尝试Unix shell脚本编写,在我现在正在编写的脚本中,我希望脚本的3个参数中有2个是可选的。但是,如果用户没有输入参数,我需要使用默认值。我怎样才能恰当地说出一些基本意思:

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

试试这个:

if [ "x$2" == "x" ]; then
    $argument="default";
else
    $argument=$2;
fi
尝试:


if[“x$2”==“x”];然后$argument=“default”;fi
我以为
$#
存储了输入参数的数量?我可能错了。
test-n
test-z
。测试几乎与
[
相同。可能是重复的,或者你可能更喜欢说你正在使用哪个shell。这个技巧仍然是必要的吗?
如果[“$2=”];
工作正常,至少在
bash
破折号
中。@chepner我对被识别为产生语法错误的空令牌,因此我会说是。这两个答案似乎都很有效-我刚刚接受了第一个有效的答案!感谢你们两个的快速回复!这两个答案似乎都很有效-我刚刚接受了第一个有效的答案!感谢你们两个的快速回复!
argument=${2:-default value}