Đặt biến shell theo kiểu kết hợp null


19

Tôi thực sự thích "kết hợp null", trong đó bạn có thể đặt biến thành giá trị "không null" đầu tiên trong danh sách các thứ. Nhiều ngôn ngữ hỗ trợ điều này, ví dụ:

C #:

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

JavaScript:

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

... Vv Tôi chỉ tò mò nếu điều này có thể được thực hiện trong Bash để đặt một biến?

giả:

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

Câu trả lời:


28

Vỏ POSIX (bao gồm bash) tương đương sẽ là:

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

Xem thêm:

${FOO-${BAR-default}}

biến thể kiểm tra xem biến có được đặt hay không thay vì nó có phân giải thành chuỗi rỗng hay không (điều này tạo ra sự khác biệt trong trường hợp một biến được đặt nhưng trống).


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.