一部のプロセスに進行状況バーを追加するためのシェルスクリプトを読んでいます。ここ)。この行を理解できません(オプション)。
#BAR_EXT=${BAR_EXT-}
コメントは、これが各ファイルに拡張子を追加することを示しています。たぶんもっと読む必要があるかもしれませんが - 演算子の使い方に慣れていません。
私は次の選択肢を知っています。バッシュリファレンスマニュアル:
${parameter:-word}
上記はnull値をparameter
。 (少なくとも私はそれを知っていると思います。)word
${parameter-word}
しかし、それ以降は何も指定されておら-
ず、何が起こっているのかよくわかりません。これは単にparameter
null値を置き換えますか?通常、私はこれを実際の推測として受け入れ、読み続けたいと思います。しかし、言及されたコメントは次のとおりです。次へ追加ファイル拡張子。
ベストアンサー1
スクリプトにコマンドが含まれていますかset -u
?これは意味する
パラメータ拡張時に設定されていない変数と特殊パラメータ「@」、「*」以外のパラメータはエラーとして扱われます。設定されていない変数またはパラメータに対して拡張しようとすると、シェルはエラーメッセージを出力し、対話型でない場合はゼロ以外の状態で終了します。
つまり、$BAR_EXT
設定されていない場合は次のようになります。
BAR_FILE="$BAR_FILE$BAR_EXT"
失敗するでしょう。注文する
BAR_EXT=${BAR_EXT-}
$BAR_EXT
まったく定義されていない場合は、明示的に空の文字列に設定され、これらのエラーを回避できます。