このシェル割り当てはどのくらい移植性がありますか?

このシェル割り当てはどのくらい移植性がありますか?

VAR=${VAR:-値}

目的は、すでに設定されていない場合、環境変数VARを値に設定することです。

BashとDashで動作しているようですが、どのように移植性がありますか?

ベストアンサー1

このディストリビューションは移植可能で、すべてのPOSIXシェルで動作します。 POSIXの定義この拡張ように:

${パラメータ:-単語}

デフォルト値を使用します。引数が設定されていないか空の場合、単語の拡張が置き換えられます。それ以外の場合は、引数の値を置き換える必要があります。

VARただし、nullの場合、この値もその値に設定されます。値をVAR設定するにはVAR(すでに設定されていない場合)、次を使用する必要があります。

VAR=${VAR-value}

コロンを省略すると、変数が設定されていない場合にのみ置換が発生します。

以前に示されたパラメータ拡張で型にコロンを使用すると、パラメータが設定解除されるか、テスト対象が空になります。コロンを省略すると、設定解除されたパラメータのみがテストされます。

おすすめ記事