Yêu cầu trợ giúp - trong ngữ cảnh shell script trên bash GNU / LINUX:
Tôi luôn luôn sử dụng set -e
. Thông thường, tôi muốn grep
và không phải lúc nào cũng muốn tập lệnh chấm dứt thực thi nếu không tìm thấy grep
trạng thái thoát của 1
mẫu biểu thị.
Đôi khi tôi đã cố gắng giải quyết vấn đề này như sau:
(Thử I)
Nếu set +o pipefail
và gọi grep bằng một cái gì đó như thế grep 'p' | wc -l
thì tôi sẽ có hành vi mong muốn cho đến khi một người bảo trì trong tương lai kích hoạt pipefail
. Ngoài ra, tôi thích kích hoạt pipefail
để điều này không làm việc cho tôi.
(Thử II)
Sử dụng một sed
hoặc awk
và chỉ in các dòng khớp với mẫu, sau đó wc
các dòng khớp để kiểm tra mẫu phù hợp. Tôi không thích tùy chọn này vì sử dụng sed
để grep
có vẻ như một cách giải quyết cho vấn đề thật sự của tôi.
(Thử III)
Cái này là thứ tôi thích nhất - đại loại như:set +e; grep 'p'; set-e
Bất kỳ cái nhìn sâu sắc / thành ngữ sẽ được đánh giá cao nhất - cảm ơn bạn.