Một phần của tập lệnh tôi đang viết cần kiểm tra các tệp văn bản khác nhau cho cùng một chuỗi. Trước khi tôi chỉ phải kiểm tra một tập tin, vì vậy tôi đã có một danh sách dài các chuỗi trong cateogies để tìm kiếm được định nghĩa là biến. Sau đó trong các kịch bản variabled được gọi và xuất ra màn hình nếu có một trận đấu:Có thể nối nhiều lệnh trong câu lệnh if?
category_1=$(sudo zcat myfile | egrep -c 'Event 1|Event 2|Event 3')
category_2=$(sudo zcat myfile | egrep -c 'Event 4|Event 5|Event 6')
category_3=$(sudo zcat myfile | egrep -c 'Event 7|Event 8|Event 9')
...
echo Category 1
if [[ $category_1 -ge 2 ]];then
echo There were $category_1 events
elif [[ $category_1 -eq 1 ]]; then
echo There was $category_1 event
fi
vv, vv ...
Bây giờ tôi cần phải thay đổi nó vì vậy mà tôi có thể kiểm tra grepped chuỗi chống lại nhiều tệp văn bản. Tôi đã cố gắng để xác định các tập tin mới như biến và ống chúng trong câu lệnh if với biến grep để avail không có:
category_1=$(egrep -c 'Event 1|Event 2|Event 3')
category_2=$(egrep -c 'Event 4|Event 5|Event 6')
category_3=$(egrep -c 'Event 7|Event 8|Event 9')
myfile=$(sudo zcat myfile)
myfile2=$(sudo zcat myfile2)
myfile3=$(sudo zcat myfile3)
...
echo Category 1 - Myfile
if [[ myfile | $category_1 -ge 2 ]];then
echo There were $category_1 events in myfile
elif [[ myfile | $category_1 -eq 1 ]]; then
echo There was $category_1 event in myfile
fi
Dường như tôi không thể lệnh đường ống trong một câu lệnh if.
để có lệnh 'egrep' được đặt làm biến để tôi không phải đặt 'Sự kiện 1', v.v ... trong mỗi lệnh? Vì vậy, nó sẽ giống như grepvariable1 = $ egrep -c 'Sự kiện 1 | Sự kiện 2 | Sự kiện 3'if [[$ (sudo zcat myfile1 | grepvariable1) -ge 2]]; sau đó – Hxwk
@Hxwk: Bạn có thể xác định một hàm có chứa mã bạn muốn lặp lại. – choroba
Cảm ơn bạn đã chỉ cho tôi đúng hướng, tôi sẽ xem xét các chức năng – Hxwk