giảm giá 50% tất cả các kế hoạch, thời gian có hạn. Bắt đầu lúc $2.48/mo
còn 10 phút
Máy chủ & Hệ điều hành

Câu lệnh Bash If: Cú pháp, Biến thể, Trường hợp sử dụng, Lệnh và hơn thế nữa!

Pius Bodenmann By Pius Bodenmann đọc 10 phút Cập nhật ngày 28 tháng 1 năm 2024
kịch bản bash

Trong tập lệnh shell, các câu lệnh Bash if đóng vai trò quan trọng bằng cách cho phép các lập trình viên tạo các đường dẫn thực thi có điều kiện dựa trên các tình huống khác nhau. Về cơ bản, câu lệnh if cho phép chúng ta đưa ra quyết định trong các tập lệnh Bash, xem xét các yếu tố như kết quả kiểm tra, thông tin đầu vào của người dùng hoặc trạng thái hệ thống. Nó giống như một cách để điều hướng qua các khả năng khác nhau.

Khi sử dụng tập lệnh Bash, câu lệnh if tuân theo một cấu trúc cụ thể. Nó thường bắt đầu bằng “if” từ khóa, theo sau là điều kiện cần đánh giá, từ khóa “sau đó” từ khóa và một hoặc nhiều lệnh sẽ thực thi nếu điều kiện đúng.

Để làm cho mọi thứ linh hoạt hơn, câu lệnh if cũng có thể bao gồm tùy chọn “yêu tinhCâu lệnh " (else if), được sử dụng khi điều kiện ban đầu là sai. Nó cho phép chúng ta kiểm tra một điều kiện bổ sung và tiến hành tương ứng. Ngoài ra, câu lệnh if có thể có một câu lệnh "else" tùy chọn, câu lệnh này sẽ thực thi nếu không có điều kiện nào đúng.

Bằng cách kết hợp các câu lệnh if với các lệnh Bash khác và các tính năng của tập lệnh shell, lập trình viên có thể tạo ra các tập lệnh nâng cao có khả năng tự động hóa các tác vụ và quy trình phức tạp. Hãy theo dõi để khám phá thêm về câu lệnh Bash if, bao gồm cú pháp, trường hợp sử dụng và ví dụ của nó!

Cú pháp câu lệnh Bash If

Cú pháp Bash đề cập đến các quy tắc chi phối cấu trúc và ngữ pháp của các lệnh và tập lệnh được viết bằng ngôn ngữ shell Bash. Cú pháp Bash bao gồm nhiều cấu trúc và phần tử khác nhau, chẳng hạn như:

  • Lệnh: Đây là các chương trình thực thi riêng lẻ hoặc các chương trình tích hợp shell được sử dụng để thực hiện các tác vụ cụ thể. Bạn sẽ dành phần lớn thời gian để lập trình Bash bằng những dòng đáng yêu này.
  • Đối số: Đây là những giá trị được truyền cho các lệnh để chỉ định các tùy chọn, tham số hoặc dữ liệu đầu vào. Hãy coi chúng như những điều kiện được đặt cho một lệnh để chỉ định các tham số thực thi của nó.
  • Biến: Đây là những ký hiệu đại diện cho các giá trị có thể được gán, thao tác hoặc sử dụng trong biểu thức. Chúng thường được sử dụng để xác định các giá trị mà cả lệnh và đối số phải xử lý.
  • Chuyển hướng: Đây là quá trình chuyển hướng đầu vào, đầu ra hoặc lỗi đến hoặc từ các tệp, thiết bị hoặc các lệnh khác. Nếu không có những thứ này, khả năng cao là các lệnh của bạn nhắm mục tiêu sai đích và làm rối mã của bạn.
  • Ống: Đây là cơ chế kết nối đầu ra của lệnh này với đầu vào của lệnh khác. Chúng thường được sử dụng để thực hiện các dòng lệnh có điều kiện nâng cao trong các chương trình lớn và để tạo các dòng lệnh đan xen.
  • Cấu trúc điều khiển: Đây là các cấu trúc kiểm soát luồng thực thi các lệnh, chẳng hạn như vòng lặp, điều kiện và hàm. Hiểu cấu trúc điều khiển là chìa khóa trong việc tạo ra các dòng lệnh mới và mang lại mức độ sâu khác cho mã của bạn.
  • Bình luận: Đây là các chú thích bị shell bỏ qua và được sử dụng để ghi lại mã hoặc cung cấp giải thích. Đây là những điểm tham chiếu quan trọng khi thực hiện phân tích và gỡ lỗi, đặc biệt là trong các dự án nhóm.

Cú pháp Bash phải được viết chính xác để shell diễn giải và thực thi các lệnh. Lỗi cú pháp có thể khiến shell tạo ra thông báo lỗi hoặc hành vi không mong muốn.

Đây là câu lệnh Bash if đang hoạt động:

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

Trong trường hợp chúng ta có ở đây, “điều kiện” đề cập đến một thử nghiệm cho ra kết quả đúng hoặc sai. Khi điều kiện đúng, các lệnh tiếp theo được chỉ định sau từ khóa “then” sẽ được thực thi. Bây giờ, giả sử chúng ta muốn đánh giá một điều kiện bổ sung. Chúng ta có thể sử dụng từ khóa “elif” để làm điều này. Nó cung cấp một cách để xem xét một khả năng khác. Bây giờ, nếu không có điều kiện nào đúng thì các lệnh được chỉ định sau từ khóa “else” sẽ có hiệu lực. Nó giống như một kế hoạch dự phòng. Cuối cùng, để biểu thị kết luận của câu lệnh if, chúng ta sử dụng từ khóa “if”.

Câu lệnh Bash hoạt động như thế nào?

Khi nói đến tập lệnh Bash, câu lệnh if trở nên khá hữu ích trong việc hướng dẫn luồng tập lệnh dựa trên kết quả của bài kiểm tra có điều kiện. Mục đích của nó xoay quanh việc đánh giá một điều kiện và nếu thấy đúng thì sẽ thực thi một bộ lệnh cụ thể.

Bây giờ, chúng ta hãy xem qua cách mọi thứ thường diễn ra khi một câu lệnh if xuất hiện trong tập lệnh Bash. Tập lệnh mất một chút thời gian để đánh giá điều kiện được đề cập trong câu lệnh if. Nếu điều kiện được chứng minh là đúng, các lệnh trong khối “then” sẽ lần lượt được thực thi.

Tuy nhiên, nếu điều kiện sai, tập lệnh sẽ tiếp tục đánh giá bất kỳ điều kiện Elif bổ sung nào. Nếu bất kỳ điều kiện nào trong số này đúng, các lệnh của khối Elif tương ứng sẽ được thực thi. Trong trường hợp không có điều kiện nào được chỉ định trong câu lệnh if và elif có vẻ đúng, tập lệnh sẽ thừa nhận điều này và tiến hành thực thi các lệnh được chỉ định trong khối else (nếu có khối else).

Về cơ bản, câu lệnh if đóng vai trò như một phương tiện hỗ trợ việc ra quyết định trong tập lệnh, cho phép tập lệnh đi qua các đường dẫn thực thi khác nhau tùy thuộc vào kết quả kiểm thử. Bản thân thử nghiệm có thể tính đến nhiều yếu tố khác nhau, chẳng hạn như kết quả của lệnh hoặc giá trị được gán cho một biến.

Câu lệnh Bash If được minh họa

Bây giờ chúng ta hãy thoát khỏi lý thuyết cơ bản và xem câu lệnh Bash if có thể được sử dụng như thế nào trong quá trình phát triển mã hóa tích cực. Đây là một ví dụ minh họa cách hoạt động của câu lệnh Bash if:

#!/bin/bash
# set a variable
x=5
# evaluate the variable
if [ $x -gt 4 ]
then
  echo "x is greater than 4."
else
  echo "x is less than or equal to 4."
fi

Trong ví dụ này, câu lệnh if đánh giá giá trị của biến x. Nếu x lớn hơn 4, tập lệnh sẽ thực thi lệnh in “x lớn hơn 4”. Nếu x nhỏ hơn hoặc bằng 4, tập lệnh sẽ thực thi lệnh in “x nhỏ hơn hoặc bằng 4”.

Bây giờ bạn đã hiểu rõ về Câu lệnh Bash If trần trụi và cách thức hoạt động của nó, hãy cùng tìm hiểu sâu hơn về các biến thể và các lệnh liên quan, đồng thời tìm hiểu thêm về Câu lệnh If cơ bản, Câu lệnh Nested If, Bash If Else, If Elif Else và Case Statement lần lượt.

Câu lệnh If cơ bản

Hãy bắt đầu với câu lệnh bash if cơ bản. Câu lệnh if trong Bash kiểm tra xem điều kiện có đúng hay không và thực thi một khối mã liên quan tương ứng. Đây là cú pháp:

if [ condition ]
then
  commands
fi

Trong trường hợp chúng ta đang gặp ở đây, tập lệnh sẽ đánh giá điều kiện và nếu nó đúng, các lệnh đã chỉ định sẽ được thực thi. Nếu điều kiện sai, tập lệnh sẽ chuyển sang lệnh tiếp theo mà không thực thi khối trong phần “then”.

Câu lệnh if lồng nhau

Câu lệnh if lồng nhau, như tên quảng cáo ngụ ý, là câu lệnh if được “lồng” bên trong một câu lệnh if khác. Cấu trúc lồng nhau này cho phép thực hiện các thử nghiệm và phân tích phức tạp hơn trong một tập lệnh. Đây là một ví dụ về câu lệnh if lồng nhau:

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

Bạn có thể thấy trong các lệnh mà tập lệnh đánh giá điều kiện1 là bước đầu tiên. Nếu điều kiện 1 được xác minh là đúng thì nó sẽ đánh giá điều kiện 2. Nếu điều kiện 2 cũng đúng thì tập lệnh sẽ thực thi các lệnh cần thiết.

Câu lệnh Bash If Else

Câu lệnh Bash if else cho phép bạn đưa ra quyết định trong tập lệnh của mình dựa trên việc điều kiện là đúng hay sai, cho phép thực thi mã tình huống nâng cao hơn. Đây là cấu trúc trông như thế nào:

if [ condition ]
then
  commands1
else
  commands2
fi

Cấu trúc này đảm bảo rằng nếu điều kiện được giữ, tập lệnh của bạn sẽ nhanh chóng thực thi “lệnh1”. Tuy nhiên, nếu điều kiện sai, nó sẽ chuyển sang thực thi “lệnh2”.

Câu lệnh If Elif Else

Đôi khi, bạn cần xem xét nhiều điều kiện và kết quả tương ứng của chúng. Câu lệnh if elif else cho phép bạn thực hiện chính xác điều đó. Quan sát cú pháp sau:

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

Ở đây, tập lệnh của bạn đánh giá điều kiện1 trước. Nếu nó được xác minh là đúng; nó sẽ nhanh chóng thực thi lệnh1. Tuy nhiên, nếu điều kiện 1 sai, tập lệnh của bạn sẽ chuyển sang đánh giá điều kiện 2. Nếu điều kiện 2 đúng thì tiếp tục thực thi lệnh 2. Và nếu cả hai điều kiện1 và điều kiện2 đều sai, tập lệnh của bạn sẽ chuyển sang tập lệnh thay thế đang thực thi lệnh3.

Báo cáo trường hợp

Trong Bash, bạn có câu lệnh case, có chức năng tương tự như câu lệnh switch trong các ngôn ngữ lập trình khác. Nó cung cấp một cách để thực thi các nhóm lệnh khác nhau dựa trên giá trị của một biến. Hãy nhìn vào cấu trúc:

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

Ở đây, tập lệnh đánh giá biến biểu thức và khớp nó với các mẫu khác nhau. Khi tìm thấy kết quả khớp, tập lệnh tương ứng sẽ được thực thi. Tuy nhiên, nếu không tìm thấy kết quả khớp nào, các lệnh mặc định sẽ được thực thi một cách duyên dáng. Mẫu dấu hoa thị (*) hoạt động như một ký tự đại diện, khớp với bất kỳ thứ gì chưa được che phủ.

Toán tử logic Bash

Một phần quan trọng khác của cơ chế câu lệnh Bash if là Toán tử logic. Các toán tử này cho phép bạn kết hợp nhiều điều kiện, cho phép bạn đưa ra quyết định dựa trên tính đúng hay sai của các điều kiện kết hợp này. Bash kết hợp ba toán tử logic chính để sử dụng trong câu lệnh if. Dưới đây là ví dụ về ba loại lệnh toán tử logic chính.

  • Bash VÀ (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Logic hoặc (II):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • Không bằng:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

Phần kết luận

Trong bài đăng trên blog này, chúng tôi đã cung cấp hướng dẫn giới thiệu về các câu lệnh Bash if và cách sử dụng chúng. Chúng tôi cũng thảo luận về cách họ có thể làm cho mã của bạn gọn gàng hơn và nhiều chức năng hơn. Bằng cách sử dụng các câu lệnh điều kiện này một cách hiệu quả, bạn có thể tạo các tập lệnh mạnh mẽ có khả năng xử lý các tác vụ và ra quyết định phức tạp.

Bạn là người mới làm quen với thế giới Linux? Hãy để chúng tôi là ánh sáng dẫn đường cho bạn trên hành trình thú vị này! Của chúng tôi VPS Linux là điểm khởi đầu hoàn hảo cho người mới bắt đầu, mang lại sự đơn giản mà không ảnh hưởng đến sức mạnh. Với giao diện thân thiện với người dùng và sự hỗ trợ của chuyên gia, bạn sẽ thấy việc khai thác các khả năng của máy chủ Linux dễ dàng hơn bao giờ hết. Cho dù bạn đang thiết lập trang web, thử nghiệm ứng dụng hay khám phá thế giới Linux rộng lớn, VPS Linux của chúng tôi đều cung cấp một môi trường an toàn và không rắc rối. Hãy tự tin bước những bước đầu tiên vào vũ trụ Linux – hãy xem các tùy chọn VPS Linux của chúng tôi ngay hôm nay và bắt tay vào cuộc phiêu lưu Linux của bạn!

Dịch vụ lưu trữ VPS Linux

Hãy sở hữu cho mình một VPS Linux cao cấp hoặc tiết kiệm để lưu trữ trang web hoặc máy tính từ xa của bạn với mức giá rẻ nhất hiện có. VPS Chạy trên Linux KVM để tăng hiệu quả và hoạt động trên phần cứng mạnh mẽ với bộ lưu trữ SSD NVMe để tăng tốc độ.

Đọc thêm

Câu hỏi thường gặp

Tôi có thể sử dụng các toán tử logic trong câu lệnh Bash if không?

Có, bạn có thể sử dụng các toán tử logic như ‘&’‘||’ trong câu lệnh Bash if. Ví dụ, if [ $var -gt 0 ] && [ $var -lt 10 ]; sau đó … sẽ thực thi khối mã nếu $var lớn hơn 0 và nhỏ hơn 10.

Tôi có thể sử dụng nhiều điều kiện trong một câu lệnh if không?

Có, bạn có thể sử dụng Bash if nhiều điều kiện trong một câu lệnh if bằng cách sử dụng các toán tử logic như -a (VÀ) hoặc -o (HOẶC) để kết hợp chúng. Ví dụ, if [ $var -gt 0 -a $var -lt 10 ]; sau đó … sẽ thực thi khối mã nếu $var lớn hơn 0 VÀ nhỏ hơn 10.

Tôi có thể sử dụng thay thế lệnh trong câu lệnh Bash if không?

Có, bạn có thể sử dụng tính năng thay thế lệnh trong câu lệnh Bash if bằng cách đặt lệnh đó trong $() hoặc dấu ngược (). Ví dụ, if [ $(whoami) == “root” ]; sau đó … sẽ thực thi khối mã nếu người dùng hiện tại là root.

[[ vs [ vs ( vs ((: Sự khác biệt giữa các toán tử Bash này là gì?

Nói tóm lại, [[ được sử dụng để kiểm tra điều kiện nâng cao. [ được sử dụng để kiểm tra điều kiện cơ bản. ( được sử dụng để nhóm con và thực thi lệnh. (( được sử dụng cho các phép toán số học.

 

Chia sẻ

Thêm từ blog

Hãy tiếp tục đọc.

Các ứng dụng tự lưu trữ tốt nhất bạn có thể chạy với ảnh bìa Cosmos Cloud với các bảng ứng dụng xung quanh bảng điều khiển Cosmos.
Máy chủ & Hệ điều hành

Các ứng dụng tự lưu trữ tốt nhất bạn có thể chạy với Cosmos Cloud: Tệp, Phương tiện, Mật khẩu, Tự động hóa, v.v.!

Có thể bạn đã thiết lập Cosmos Cloud và bây giờ muốn xem ứng dụng nào phù hợp với nó hoặc có thể bạn thậm chí chưa quyết định chọn Cosmos và chỉ muốn xem nó phù hợp với công việc của bạn như thế nào

Nick bạcNick bạc đọc 16 phút
Portainer vs Cosmos Cloud để quản lý ứng dụng Docker bao gồm sơ đồ thiết lập kết hợp và các hoạt động neon so với các khối truy cập.
Máy chủ & Hệ điều hành

Portainer vs Cosmos Cloud: Phù hợp nhất để quản lý ứng dụng Docker

Nếu bạn đã biết Docker và chỉ muốn một cách rõ ràng hơn để chạy một ngăn xếp ứng dụng đang phát triển thì đây là câu trả lời ngắn gọn cho Portainer vs Cosmos Cloud. Portainer là sự lựa chọn mạnh mẽ hơn cho Direc

Nick bạcNick bạc đọc 14 phút
Đồ họa nổi bật của Cosmos Cloud vs CasaOS vs Umbrel hiển thị ba đường dẫn tự lưu trữ bên trong một thế giới mạng đám mây trừu tượng.
Máy chủ & Hệ điều hành

Cosmos Cloud vs CasaOS vs Umbrel: Nền tảng tự lưu trữ nào phù hợp với thiết lập của bạn?

Câu trả lời ngắn gọn là CasaOS vẫn là nơi dễ bắt đầu nhất, Umbrel có cảm giác được quản lý rõ ràng nhất và Cosmos Cloud sẽ hợp lý hơn khi bạn muốn kiểm soát chặt chẽ hơn đối với doma

Nick bạcNick bạc đọc 11 phút

Sẵn sàng triển khai? Từ $2,48/tháng.

Đám mây độc lập, kể từ năm 2008. AMD EPYC, NVMe, 40 Gbps. Hoàn tiền trong 14 ngày.