Lưu ý rằng, vì PIPE
là bất kỳ lệnh hoặc chuỗi lệnh nào, sau đó:
if PIPE ; then
# do one thing if PIPE returned with zero status ($?=0)
else
# do another thing if PIPE returned with non-zero status ($?!=0), e.g. error
fi
Đối với hồ sơ, [ expr ]
là một vỏ BUILTIN † viết tắt cho test expr
.
Vì grep
trả về với trạng thái 0 trong trường hợp khớp và trạng thái khác không trong trường hợp không khớp, bạn có thể sử dụng:
if grep -lq '^MYSQL_ROLE=master' ; then
# do one thing
else
# do another thing
fi
Lưu ý việc sử dụng -l
chỉ quan tâm đến tệp có ít nhất một kết quả khớp (để grep
trả về ngay khi tìm thấy một kết quả khớp mà không cần tiếp tục phân tích tệp đầu vào.)
† trên một số nền tảng [ expr ]
không phải là một dựng sẵn, nhưng một thực thi thực tế /bin/[
(mà tranh luận cuối cùng sẽ được ]
), đó là lý do tại sao [ expr ]
nên chứa khoảng trống xung quanh dấu ngoặc vuông, và tại sao nó phải được theo sau bởi một trong những dải phân cách danh sách lệnh ( ;
, &&
, ||
, |
, &
, dòng mới)