web-dev-qa-db-ja.com

スクリプトの変数割り当てに「$ {a:-b}」を使用する

私は他の人が書いたいくつかのスクリプト(特にRed Hat)を見てきましたが、それらの変数の多くは次の表記VARIABLE1="${VARIABLE1:-some_val}"またはいくつかの他の変数VARIABLE2="${VARIABLE2:-`echo $VARIABLE1`}"を使用して割り当てられています

値を直接宣言するだけでなく、この表記を使用するポイントは何ですか(例:VARIABLE1=some_val)。

この表記法にはメリットがありますか、それともエラーの可能性はありますか?

:-はこのコンテキストで特定の意味を持っていますか?

499
Rothgar

個人的体験。

私は、スクリプトで時々この形式を使用して、値のアドホックな上書きを行います。私が持っている場合:

$ cat script.sh
SOMETHING="${SOMETHING:-something}"; echo "$SOMETHING"; 

走れる:

$ env SOMETHING="something other than the default value" ./script.sh` 

SOMETHINGの元のデフォルト値を変更する必要はありません。

10
h.j.k.