3
:1つのステートメント内に2つのBash置換がありますか?あなたはこれで空または未定義の変数を置き換えることができますbashで
${myvar:-replacement}
ます。また、このような変数に部分文字列を置き換えることができます。
${myvar//replace this/by this}
は今、私は1つに両方の置換を組み合わせたい:場合変数が定義されていない場合はreplacement
に設定し、そうでなければその一部を別のものに置き換えます。
これを問題なく2行に書き込むことができます。
myvar=${myvar:-replacement}
myvar=${myvar//replace this/by this}
またはより密接に私のビジネス・ロジックを反映する:
if [[ -n "${myvar:-}" ]]; then
myvar="${myvar//replace this/by this}"
else
myvar="replacement"
fi
1つのステートメント/ 1ラインに両方の置換を結合する方法はありますか?
私は成功せず、これを試してみました:私は、未定義の変数を使用するとき、彼らが出てエラーように私は私のスクリプトでset -u
を使用しています
myvar=${${myvar:-replacement}//replace this/by this} # bad substitution
。だから私は未定義のvarの最初のサブが必要です。
これは私の知る限りbash' 'で – Inian
なぜ我々はできません常に1つの行で物事をしたいですか?それが可読で醜くないなら、それをそのままにしておいてください。 – Maroun
@MarounMarounあなたが正しいかもしれません。私はちょうどスペースで区切られた1つの行に両方の文を書くことができたことに気づいた。しかし、それが読めるようにするのが簡単かどうか分かりません。 –