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
}