csh: làm thế nào để kiểm tra trống chính xác?


4

Tôi muốn kiểm tra nếu một biến hoàn toàn trống trong csh.

set R='dddd aaa'
if ( '${R}' ) then
    echo not empty

else
    echo 1111
endif

Tuy nhiên nó dường như không hoạt động.

Nó đưa ra thông báo lỗi này:

/usr/bin/test: argument expected
if: Expression Syntax.

Câu trả lời:


3

Sử dụng

if ( "x$R" == "x" ) then
    echo empty
else
    echo not empty
endif

Shell C không có toán tử rỗng như bash. Ngoài ra, bạn không thể trích dẫn bằng 'vì nó sẽ ngăn việc mở rộng biến.


Nó hoạt động. Cảm ơn. Nhưng vì một số lý do, thông báo lỗi "/ usr / bin / test: argument argument" vẫn còn. Bạn có biết tại sao?
Anthony Kong

Bạn có thể có một dấu ngoặc thừa ở một nơi khác trong tập lệnh của bạn (chúng là một tốc ký cho / usr / bin / test)
RedGrittyBrick

Làm "đặt tiếng vang" ở đầu tập lệnh. Nó đến từ một nơi khác, tôi chắc chắn, vì tôi đã chạy mã ở trên thông qua csh và nó đã không phàn nàn.
e40
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.