在bash
(和zsh
)中,我如何最简洁地将 的值分配给$1
变量w
,如果$1
给出,否则为默认值4
?
我试过
w=$(( $1 != "" ? $1 : 4))
Run Code Online (Sandbox Code Playgroud)
但这返回了一条错误消息。
有没有比这更简单的
w=4; [[ $1 != "" ]] && w=$1
Run Code Online (Sandbox Code Playgroud)
使用形式的参数扩展 ${parameter:-word}
${parameter:-word}
使用默认值。如果参数未设置或为空,则替换单词的扩展。否则,替换参数的值。
w=${1:-4}
Run Code Online (Sandbox Code Playgroud)
省略冒号会导致仅对未设置的参数进行测试。
w=${1-4}
Run Code Online (Sandbox Code Playgroud)