bash 腳本的預設參數如何運作?

bash 腳本的預設參數如何運作?

我剛發現

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.

相關內容