Hướng dẫn cho người mới bắt đầu về Shell Scripting 4 Điều kiện & Tuyên bố If-Then
Chúng tôi đã trình bày đủ những điều cơ bản trong hướng dẫn của chúng tôi về kịch bản shell mà bạn sẽ cảm thấy thoải mái khi thử nghiệm. Trong phần cài đặt của tuần này, chúng tôi sẽ giải quyết một số nội dung thú vị hơn, như điều kiện và các câu lệnh if-then.
Điều kiện là gì?
Trong ngôn ngữ hàng ngày, chúng tôi nói rằng các điều kiện là những yêu cầu phải được đáp ứng cho một cái gì đó xảy ra. Để máy tính xách tay của tôi có thể kết nối với internet, có một số điều kiện phải được đáp ứng, như có ISP, modem và / hoặc bộ định tuyến đang bật, máy tính xách tay của tôi đang bật, v.v ... Nó khá đơn giản và nếu có trong số những yêu cầu đó không được đáp ứng, kết quả - máy tính xách tay của tôi kết nối với internet - không xảy ra.
Điều kiện trong lĩnh vực điện toán làm việc tương tự. Chúng ta có thể kiểm tra xem một chuỗi có khớp với chuỗi khác hay không, liệu chuỗi đó có khớp với chuỗi khác hay không, thậm chí nếu nó tồn tại. Tương tự, chúng ta có thể kiểm tra các đối số bằng số để xem liệu một đối số có lớn hơn, nhỏ hơn hoặc bằng một đối số khác không. Để có được điều gì đó xảy ra sau khi các điều kiện của bài kiểm tra được đáp ứng, chúng tôi sử dụng các câu lệnh if if-then. Định dạng của chúng khá đơn giản..
nếu ĐIỀU KIỆN
sau đó
lệnh1
lệnh2
Giáo dục
chỉ huy
fi
Nếu báo cáo
Chúng ta hãy chạy một kịch bản thử nghiệm nhanh, chúng ta sẽ?
nếu kiểm tra $ 1 -gt $ 2
sau đó
echo 1 đô la lớn hơn 2 đô la
fi
Bạn sẽ nhận thấy rằng chỉ khi điều kiện đó là đúng thì tập lệnh sẽ thực thi lệnh sau. Nếu không, câu lệnh nếu if sẽ thoát. Nếu có bất kỳ lệnh nào sau câu lệnh của if if if, thì chúng sẽ được chạy như bình thường. Tôi đã thêm dòng sau vào cuối đoạn script trên của chúng tôi để minh họa điều này:
tiếng vang Điều này xuất hiện sau câu lệnh if
Dưới đây là một số toán tử số khác bạn có thể muốn thử:
- -eq: bằng
- -ne: không bằng
- -lt: ít hơn
- -le: nhỏ hơn hoặc bằng
- -gt: lớn hơn
- -ge: lớn hơn hoặc bằng
Chuỗi kiểm tra
Bây giờ, nếu chúng ta sửa đổi dòng đầu tiên của tập lệnh thành:
nếu kiểm tra $ 1 = $ 2
sau đó điều kiện sẽ kiểm tra nếu hai bằng nhau. Có một cái bẫy ở đây !! Việc sử dụng dấu bằng (=) so sánh hai chuỗi chứ không phải số. Nếu bạn muốn so sánh các số, bạn cần sử dụng toán tử - -qq tương tự như cách chúng tôi đã sử dụng.
Bây giờ, hãy thực hiện một sửa đổi khác:
nếu kiểm tra $ 1! = $ 2
Việc bao gồm dấu chấm than (!) Hoạt động như một công cụ sửa đổi không phải là bản sửa đổi. Nghĩa là, nó chỉ chạy lệnh sau khi hai chuỗi không khớp.
Dưới đây là danh sách một số bài kiểm tra dựa trên chuỗi khác mà bạn có thể sử dụng:
- chuỗi: chỉ sử dụng một đối số để kiểm tra nếu chuỗi không trống (null) hoặc không được xác định theo một cách nào đó
- -n chuỗi: điều này sẽ kiểm tra nếu chuỗi không trống và được xác định
- -chuỗi z: điều này sẽ kiểm tra nếu chuỗi trống và được xác định theo cách đó
Khác gì về nếu?
Tôi sẽ thừa nhận, tiêu đề phần đó chắc chắn là một sự chơi chữ tồi. Được rồi, chúng ta biết cách thực thi một lệnh nếu một bài kiểm tra là đúng, nhưng nếu chúng ta muốn thực thi một lệnh khác nếu nó sai thì sao? Chúng ta có thể dễ dàng kết hợp hai thứ lại với nhau bằng cách thêm một phần vào các câu lệnh if-then của chúng tôi - một cách khác!
nếu ĐIỀU KIỆN
sau đó
lệnh1
lệnh2
Giáo dục
chỉ huy
khác
lệnh1
lệnh2
Giáo dục
chỉ huy
fi
Chúng ta hãy tập hợp một kịch bản đơn giản.
Có tất cả mọi thứ với vết lõm thích hợp. Nếu bạn nhìn kỹ, bạn sẽ nhận thấy rằng chúng tôi đã sử dụng dấu ngoặc vuông ([và]) thay vì lệnh kiểm tra. Chúng có chức năng tương đương với mục đích của chúng tôi và nhiều khả năng bạn sẽ thấy dấu ngoặc vuông vì nhiều lý do, vì vậy chúng tôi sẽ sử dụng chúng từ bây giờ.
Đây là kết quả đầu ra sẽ như thế nào:
Nó là dễ dàng!
Tôi làm gì bây giờ?
Bây giờ bạn đã biết cách sử dụng các câu lệnh của if if-then-other, bạn có thể chạy các tập lệnh có thể thực hiện các bài kiểm tra. Ví dụ: bạn có thể chạy một tập lệnh sẽ tính toán băm md5 của một tệp và sau đó so sánh nó với tập lệnh bạn đã tải xuống trong một tệp để xem chúng có khớp không.
Đối với một số điểm thưởng, bạn có thể tạo một tập lệnh có vòng lặp cho trò chơi, nhưng sử dụng các điều kiện kiểm tra thay vì đọc các dòng trong danh sách tập tin.
Chúng ta sẽ đến một số phần thú vị hơn trong Hướng dẫn cho người mới bắt đầu về Shell Scripting. Nếu bạn bỏ lỡ các bài học trước, đây là danh sách nhanh để bạn kiểm tra:
- Khái niệm cơ bản của Shell Scripting
- Sử dụng cho vòng lặp
- Các lệnh cơ bản khác
- Sự khác biệt giữa các shell Linux?
- Cách sử dụng Biểu thức chính quy cơ bản
Nếu bạn đã tạo hoặc sử dụng các tập lệnh sử dụng các điều kiện thử nghiệm, các câu lệnh if-then-other và các vòng lặp cho các vòng lặp, hãy chia sẻ với chúng tôi trong phần bình luận!