如何在unix中指定默认参数?

时间:2010-11-27 03:34:46

标签: bash shell unix

假设我的.profile文件中有函数shoutout。 当我运行shoutout 'Hello'时,该函数会打印出Hello,这是预期的响应。不过,我希望能够简单地在没有参数的情况下拨打shoutout,并打印出Foobar功能。

如何在有或没有变量的情况下为$ 1指定默认值?谢谢!

shoutout() {
    echo $1
}

2 个答案:

答案 0 :(得分:7)

shoutout() {
    echo ${1:-Foobar}
}

编辑:感谢@ephemient这个额外的tid-bit,我不知道...

为避免将空字符串参数混淆为缺少参数,请省略冒号(:):

shoutout() {
    echo ${1-Foobar}
}

$ shoutout
Foobar
$ shoutout ""

$

答案 1 :(得分:0)

shoutout() {
    if [ $# -eq 0 ]; then
        echo No arguments.
    else
        echo $1
    fi
}