Bash scripting là một công cụ quan trọng cho các nhà phát triển để tự động hóa các tác vụ trong Linux.
Tập lệnh Bash có thể được sử dụng để tự động hóa các nhiệm vụ phát triển cục bộ (như tải lên tệp để triển khai, biên dịch ứng dụng hoặc thay đổi kích thước hình ảnh hàng loạt), cũng như cho các tác vụ phía máy chủ (gửi email đã lên lịch, thu thập dữ liệu theo khoảng thời gian hoặc gửi thông báo đến thiết bị ).
Bạn sẽ muốn chạy một số nhiệm vụ phụ thuộc vào kết quả của một nhiệm vụ hoặc biến khác và đó là nơi nếu… khác sẽ giúp bạn. Quá trình ra quyết định này trong tập lệnh Bash được gọi là sử dụng các điều kiện .
Hướng dẫn này sẽ cung cấp chi tiết và cách sử dụng ví dụ cho if… else các câu lệnh bằng Bash.
Sử dụng The if Tuyên bố
Một câu lệnh if đơn giản sẽ thực thi các hành động chứa của nó nếu các điều kiện là đúng và trông như sau:
if CONDITIONS; then ACTIONS fi
Một ví dụ đầy đủ:
#!/bin/bash if [ 2 -lt 3 ]; then echo "2 is less than 3!" fi
Lưu ý rằng:
- Tất cả các tập lệnh bash đều bắt đầu bằng dòng #! / bin / bash
- -lt toán tử kiểm tra nếu giá trị đầu tiên nhỏ hơn giá trị thứ hai. Nếu chúng tôi muốn kiểm tra xem giá trị thứ hai có lớn hơn giá trị đầu tiên hay không, chúng tôi sẽ sử dụng -gt
- Đọc tiếp để biết danh sách các toán tử logic hơn.
- Chúng tôi đang sử dụng echo lệnh xuất văn bản ra dòng lệnh
- nếu câu lệnh luôn kết thúc bằng fi để chấm dứt chúng
Sử dụng The else Tuyên bố
Nếu bạn muốn thực hiện một hành động dựa trên một tập hợp các điều kiện và sau đó một hành động khác CHỈ nếu các điều kiện đó không thành công, bạn có thể sử dụng else tuyên bố:
#!/bin/bash echo -n "Enter number: " read number if [ $number -lt 3 ]; then echo "$number is less than 3!" else echo "$number is not less than 3!" fi
Lưu ý rằng:
- Chúng tôi vẫn đang sử dụng các phần tử tương tự như trên để so sánh các giá trị và xuất văn bản
- Chúng tôi đang sử dụng tính năng đọc lệnh để nhận thông tin đầu vào của người dùng
- Chúng tôi đang sử dụng một biến để lưu trữ một giá trị để sử dụng sau này
Sử dụng elif (Khác If) Tuyên bố
Để kiểm tra nhiều nhóm điều kiện và thực hiện các hành động khác nhau nếu mỗi thử nghiệm là đúng, hãy sử dụng elif (else if) câu lệnh:
#!/bin/bash echo -n "Enter number: " read number if [ $number -lt 3 ]; then echo "$number is less than 3!" elif [ $number -eq 3]; then echo "$number is equal to 3!" else echo "$number is not less than 3!" fi
Nhiều điều kiện trong nếu Tuyên bố
Nếu bạn muốn kiểm tra nhiều điều kiện, bạn có thể sử dụng && ( VÀ ) và || ( HOẶC ) toán tử để quyết định xem có nên thực hiện các hành động hay không
#!/bin/bash echo -n "Enter number: " read number if [[ $number -lt 3 ]] && [[ $number -lt 0 ]]; then echo "$number is less than three and is negative" elif [[ $number -lt 3 ]] || [[ $number -gt 6 ]]; then echo "$number is not negative, but is less than 3 or greater than 6" else echo "$number is greater than3 and less than 6" fi
Tổ hợp câu lệnh
Bạn có thể đặt nếu các câu lệnh bên trong if khác tuyên bố:
#!/bin/bash echo -n "Enter number: " read number if [$number -gt 3]; then echo "$number is greater than 3" if [$number -gt 6]; then echo "$number is also greater than 6" else echo "$number is not also greater than 6" fi fi
Toán tử so sánh
Trong các ví dụ ở trên, chúng tôi đã sử dụng -lt (nhỏ hơn), -gt (lớn hơn) và = (bằng) toán tử. Dưới đây là một số toán tử logic thường được sử dụng khác:
So sánh các số
$number1 -eq $number2 : Returns true if the variables are equal $number1 -gt $number2 : Returns true if $number1 is greater than $number2 $number1 -ge $number2 : Returns true if $number1 is equal to or greater than $number2 $number1 -lt $number2 : Returns true if $number1 is less than $number2 $number1 -le $number2 : Returns true if $number1 is equal to or less than $number2
So sánh các chuỗi
$string1 = $string2 : Returns true if $string1 and $string2 are equal $string1 != $string2 : Returns true if $string1 and $string2 are not equal
Như được hiển thị ở trên, để đảo ngược kết quả của một biểu thức so sánh, hãy đặt ! (NOT) phía trước nó, ví dụ, *! =Có nghĩa là KHÔNG PHẢI.
Khi so sánh các chuỗi, hãy luôn đặt chúng trong dấu ngoặc kép để mọi dấu cách không bị bạn hiểu sai tập lệnh bash.
Bạn cũng nên đặt các biến có chứa chuỗi trong dấu ngoặc kép để đảm bảo chúng không bị hiểu sai:
#!/bin/bash echo -n "Enter string: " read string if ["$string" = "hello there!"] echo "You said hello there!" fi
Kiểm tra trạng thái của tệp hoặc thư mục
-d $filepath : Returns true if the $filepath exists and is a directory -e $filepath : Returns true if the $filepath exists regardless of whether it's a file or directory -f $filepath : Returns true if the $filepath exists and is a file -h $filepath : Returns true if the $filepath exists and is a symbolic link -r $filepath : Returns true if the $filepath exists and is readable -w $filepath : Returns true if the $filepath exists and is writable -x $filepath : Returns true if the $filepath exists and is executable
Kết luận
Tạo tập lệnh Bash của riêng bạn có thể giúp bạn tiết kiệm rất nhiều thời gian và viết khá đơn giản khi bạn biết các khối xây dựng cơ bản.
nếu… khác các câu lệnh cho phép bạn kiểm soát cách tập lệnh của bạn phản hồi với đầu vào của người dùng hoặc trạng thái của tệp.
Xem các bài viết Bash khác của chúng tôi để tìm hiểu thêm !