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

Yuv*_*rmi 0 unix bash shell

假设我的.profile文件中有函数shoutout .当我运行时shoutout 'Hello',该函数打印出来Hello,这是预期的响应.但是,我希望能够简单地调用shoutout没有参数并打印出函数Foobar.

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

shoutout() {
    echo $1
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*tos 7

shoutout() {
    echo ${1:-Foobar}
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

$ shoutout
Foobar
$ shoutout ""

$
Run Code Online (Sandbox Code Playgroud)

  • 要处理这种情况,请使用`$ {1-Foobar}`而不是`$ {1:-Foobar}. (3认同)