Tôi không muốn sử dụng tcsh, nhưng tiếc là không có lựa chọn nào trong tình huống này. Vì vậy, xin vui lòng không có "sử dụng một vỏ" câu trả lời!Làm cách nào để kiểm tra xem biến môi trường chưa được đặt hoặc được đặt thành chuỗi rỗng?
Tôi hiện đang cố gắng kiểm tra xem biến môi trường vừa được đặt chưa và cài đặt là biến có ích hay không. Vì vậy, những gì tôi muốn làm là thế này:
if ($?HAPPYVAR && $HAPPYVAR != "") then
... blah...
else if ($?SADVAR && $SADVAR != "") then
... more blah ...
endif
Vấn đề là nếu $ HAPPYVAR là unset, nó sẽ báo lỗi ra vào nửa cuối của biểu thức (vì biến môi trường thay thế sẽ xảy ra sớm). Tôi có thể sử dụng ifs lồng nhau, nhưng sau đó tôi có vấn đề nhận được của tôi "khác" để làm việc một cách chính xác (tôi phải thiết lập một env var để nói liệu "... blah ..." đã xảy ra hay không).
Bất kỳ ai có giải pháp tốt đẹp, gọn gàng để thực hiện việc này?
trong khi làm việc trên cùng một khái niệm tôi thấy rằng kịch bản của tôi không xử lý nếu khối, nó chỉ nói rằng HAPPYVAR: biến không xác định và chấm dứt, làm thế nào tôi có thể làm cho nó hoạt động để nó thực hiện nếu khối? –