VAR=${VAR:-値}
目的は、すでに設定されていない場合、環境変数VARを値に設定することです。
BashとDashで動作しているようですが、どのように移植性がありますか?
答え1
このディストリビューションは移植可能で、すべてのPOSIXシェルで動作します。 POSIXの定義この拡張ように:
${パラメータ:-単語}
デフォルト値を使用します。引数が設定されていないか空の場合、単語の拡張が置き換えられます。それ以外の場合は、引数の値を置き換える必要があります。
VAR
ただし、nullの場合、この値もその値に設定されます。値をVAR
設定するにはVAR
(すでに設定されていない場合)、次を使用する必要があります。
VAR=${VAR-value}
コロンを省略すると、変数が設定されていない場合にのみ置換が発生します。
以前に示されたパラメータ拡張で型にコロンを使用すると、パラメータが設定解除されるか、テスト対象が空になります。コロンを省略すると、設定解除されたパラメータのみがテストされます。