Bir kabuk değişkenini boş bir birleştirme biçiminde ayarlama


20

Gerçekten bir şeyler listesindeki ilk "null olmayan" değeri için bir değişken ayarlayabilirsiniz "null birleştirme", düşkün. Birçok dil bunu destekliyor, örneğin:

C #:

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

JavaScript:

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

...vb. Ben sadece bu bir değişken ayarlamak için Bash yapılabilir mi merak ediyorum?

sözde:

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

Yanıtlar:


29

POSIX kabuğu (bu şekilde içerir bash) eşdeğeri:

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

Ayrıca bakınız:

${FOO-${BAR-default}}

değişkenin boş dizeye çözümlenip çözümlenmediği yerine ayarlanıp ayarlanmadığını kontrol eden varyant (bir değişkenin ayarlandığı ancak boş olduğu durumlarda fark yaratır).


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.