私はこの式 ${varname:-text} に出くわしました,そして 3 つの他の同様の形式:
${varname-text}
${varname:=text}
${varname:?text}
文章の代用みたいなのですが、この表現はどう使うのでしょうか?
私はこの式 ${varname:-text} に出くわしました,そして 3 つの他の同様の形式:
${varname-text}
${varname:=text}
${varname:?text}
文章の代用みたいなのですが、この表現はどう使うのでしょうか?
POSIXシェルの標準ドキュメントでは、これらの特別なパラメータ拡張形式について次のように説明しています。
${parameter:-word}
デフォルト値を使用します。パラメータが設定されていないかnullの場合、単語の展開が置き換えられます。それ以外の場合は、パラメータの値に置き換えられます。
${parameter:=word}
デフォルト値を割り当てます。パラメータが設定されていないかnullの場合、単語の展開がパラメータに割り当てられます。いずれの場合も、パラメータの最終値に置き換えられます。この方法で割り当てることができるのは、位置パラメータや特別なパラメータではなく、変数のみです。
${parameter:?[word]}
NullまたはUnsetの場合はエラーを示します。パラメータが未設定またはnullの場合、ワードの展開(またはワードが省略されている場合は未設定であることを示すメッセージ)は標準エラーに書き込まれ、シェルはゼロ以外の終了ステータスで終了します。それ以外の場合は、パラメータの値に置き換えられます。インタラクティブシェルを終了する必要はありません。
そこに示されている例と、より完全な表があります。すべてのPOSIX準拠のシェルはそれらをサポートする必要があります。のようbash
に、追加のフォーマットを含むものもあります。