惯用语:设置变量的默认值



如何以简洁、惯用的方式为 bash 变量设置默认值?这看起来很丑陋:

if [[ ! -z "$1" ]]; then
    option="$1"
else
    option="default"
fi
default value               : ${parameter:-word} 
assign default value        : ${parameter:=word}  |_ / if unset or null -
error if empty/unset        : ${parameter:?mesg}  |   use no ":" for unset only
use word unless empty/unset : ${parameter:+word} /

您可以使用:

option=${1:-default}

如果给出了第一个命令行参数,则此选项将选项设置为第一个命令行参数,而不是 null。否则,它将选项设置为默认值。有关参数扩展的详细信息以及此形式的一些有用变体,请参阅 Bash 参考手册。

对于分配默认值以外的用途,Toxaris已经涵盖了,值得一提的是,有一个反向测试-z,所以

if [[ ! -z "$1" ]]; then
    do_something
fi

你可以简单地写:

if [ -n "$1" ]; then
    do_something
fi

如果没有else分支,您可以将其缩短为:

[ -n "$1" ] && do_something

相关内容

  • 没有找到相关文章

最新更新