Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在unix中指定默认参数?_Bash_Shell_Unix - Fatal编程技术网

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

Bash 如何在unix中指定默认参数?,bash,shell,unix,Bash,Shell,Unix,假设我在.profile文件中有shoutout函数。 当我运行shoutoot'Hello'时,函数会打印出Hello,这是预期的响应。但是,我希望能够在没有参数的情况下调用shoutout,并将函数打印出来Foobar 如何指定$1的默认值(带变量或不带变量)?谢谢 shoutout() { echo $1 } 编辑:感谢@ephemient提供了我不知道的额外的tid位 为避免将空字符串参数混淆为缺少的参数,请省略冒号(:): 可能重要或不重要的轻微问题shoutout“”生成

假设我在
.profile
文件中有shoutout函数。 当我运行shoutoot'Hello'时,函数会打印出
Hello
,这是预期的响应。但是,我希望能够在没有参数的情况下调用
shoutout
,并将函数打印出来
Foobar

如何指定$1的默认值(带变量或不带变量)?谢谢

shoutout() {
    echo $1
}

编辑:感谢@ephemient提供了我不知道的额外的tid位

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


可能重要或不重要的轻微问题<代码>shoutout“”生成“Foobar”而不是“”。要解决这种情况,请使用
${1-Foobar}
而不是
${1:-Foobar}
。因为您如何使用命令,这实际上是一个shell或bash问题,而不是ruby问题。
shoutout() {
    echo ${1:-Foobar}
}
shoutout() {
    echo ${1-Foobar}
}

$ shoutout
Foobar
$ shoutout ""

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