私は今発見した
default="no parameter provided"
echo ${1:-$default} # in a script
これは何と呼ばれていますか? 組み込みですか? 見た目どおりに動作しますか?
答え1
これはシェルパラメータの拡張そして、任意のPOSIXシェル:
${parameter:-word}
もしパラメータ未設定またはnullの場合、言葉それ以外の場合は、パラメータ代用されます。
あなたの例では、${1}
が設定されていないか 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.