1

私はいくつかのbashコードをリファクタリングしており、このbash表記法に出くわしました:

"${string_a:-string_b}"

コマンドラインでこれを少し試しました:

$ echo "${string_a:-string_b}"
string_b
$ export string_a=string_a_value
$ echo "${string_a:-string_b}"
string_a_value

{a:-b}表記法は、変数が定義されている場合は変数 の値を返し、そうでない場合は文字列を返すようです。a b

この演算子のより正式な定義はどこにありますか?

4

3 に答える 3

3

man bashを使用して bash ドキュメントにアクセスできます。タイプを検索するには/

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

デフォルト値を使用します。パラメータが設定れていないか null の場合、単語の展開が置換されます。それ以外の場合は、パラメーターの値が代入されます。

于 2013-04-24T13:42:37.173 に答える
2

同調圧力、私は答えとして私のコメントを投稿します:)

私はこの参照カードが好きです: Advanced Bash-Scripting Guide、具体的にはあなたの場合に役立ちます"# Table B-4. Parameter Substitution and Expansion" .

私は、著作権を侵害しないと彼らが示している問題をコピーしません。そこにすべての情報を見つけてください。

于 2013-04-24T13:42:27.623 に答える
2

もう 1 つの便利なリンクは、Bash リファレンス マニュアルのシェル パラメータ拡張セクションです。演算子は次の:-ように定義されます。

${parameter:-word} パラメータが設定されていないか null の場合、単語の展開が置換されます。それ以外の場合は、パラメーターの値が代入されます。

ところで、bash には、そのセクションで定義されている3 つの類似した演算子${parameter:=word}${parameter:?word}およびがあります。${parameter:+word}

于 2013-04-24T13:54:44.517 に答える