我剛發現
default="no parameter provided"
echo ${1:-$default} # in a script
這個叫什麼?它是內建的嗎?它真的像看起來那麼有效嗎?
答案1
這是一部分shell參數擴展並且內建於任何 POSIX shell:
${parameter:-word}
如果範圍未設定或為 null,則擴展單字被替換。否則,值範圍被替換。
在您的範例中,如果${1}
不是 unset 或 null,則輸出其值,否則${default}
輸出 的值。
答案2
它的Parameter Expansion
描述在Bash 線上說明頁您也可以使用以下命令在本機上呼叫man bash
:
${parameter:-word}
Use Default Values. If parameter is unset or null, the
expansion of word is substituted. Otherwise, the value
of parameter is substituted.