Mengatur variabel shell dengan cara penggabungan nol

20

Saya benar-benar menyukai "null coalescing", di mana Anda dapat mengatur variabel ke nilai "non-null" pertama dalam daftar hal-hal. Banyak bahasa mendukung ini, misalnya:

C #:

String myStr = string1 ?? string2 ?? "default";

JavaScript:

var myStr = string1 || string2 || "default";

... dll. Saya hanya ingin tahu apakah ini dapat dilakukan di Bash untuk mengatur variabel?

semu:

MY_STR=$ENV{VAR_NAME}??$ANOTHER_VAR??"default";
devios1
sumber

Jawaban:

29

bashSetara shell POSIX (termasuk ) akan menjadi:

${FOO:-${BAR:-default}}

Lihat juga:

${FOO-${BAR-default}}

varian yang memeriksa apakah variabel disetel atau tidak, bukan apakah itu memutuskan ke string kosong atau tidak (yang membuat perbedaan dalam kasus-kasus di mana variabel diatur tetapi kosong).

Stéphane Chazelas
sumber
5

Tidak secara langsung.

my_str="${var_name:-${another_var:-default}}"
Ignacio Vazquez-Abrams
sumber