Lệnh case trong linux với các ví dụ dễ hiểu

Trong Linux, lệnh case giúp bạn thực hiện các hành động khác nhau dựa trên giá trị của một biến. Nó giống như một loạt các câu lệnh "if, elif, else" nhưng được tổ chức gọn gàng hơn. Sử dụng case giúp code dễ đọc và bảo trì hơn khi xử lý nhiều trường hợp khác nhau. Hãy thử dùng lệnh case trong linux để làm cho script của bạn trở nên thông minh hơn nhé!

Lệnh case trong linux là gì?

Trong Linux, command case in linux là một cấu trúc điều khiển mạnh mẽ, cho phép bạn thực thi các đoạn mã khác nhau dựa trên giá trị của một biến hoặc biểu thức. Nó hoạt động tương tự như câu lệnh switch trong các ngôn ngữ lập trình khác, giúp chương trình rẽ nhánh một cách linh hoạt. Lệnh case đặc biệt hữu ích khi bạn cần xử lý nhiều trường hợp khác nhau một cách rõ ràng và có tổ chức. Với case, bạn có thể dễ dàng kiểm tra giá trị của biến và thực hiện hành động tương ứng, làm cho script của bạn trở nên dễ đọc và bảo trì hơn. Hãy tưởng tượng nó như một người hướng dẫn, đưa ra các lựa chọn khác nhau dựa trên yêu cầu của bạn.

Tìm hiểu Cú pháp và Cách sử dụng Lệnh case

Trong bước này, bạn sẽ học cú pháp và cách dùng lệnh case trong Linux. Lệnh case là một công cụ mạnh mẽ để đưa ra quyết định dựa trên giá trị của biến hoặc biểu thức.

Cú pháp cơ bản của lệnh case như sau:

case expression in
  pattern1)
    commands
    ;;
  pattern2)
    commands
    ;;
  ...
  *)
    default commands
    ;;
esac

Đây là một ví dụ minh họa cách sử dụng lệnh case:

echo "Enter a file extension: "
read file_ext

case "$file_ext" in
  "txt")
    echo "The file is a text document."
    ;;
  "pdf")
    echo "The file is a PDF document."
    ;;
  "jpg" | "png" | "gif")
    echo "The file is an image."
    ;;
  *)
    echo "Unsupported file type."
    ;;
esac

Ví dụ đầu ra:

Enter a file extension:
pdf
The file is a PDF document.

Trong ví dụ trên, lệnh case kiểm tra giá trị của biến file_ext và thực thi các lệnh tương ứng dựa trên so khớp mẫu. Mẫu * được sử dụng làm trường hợp mặc định, sẽ được thực thi nếu không có mẫu nào khác khớp.

Lệnh case đặc biệt hữu ích khi bạn cần thực hiện các hành động khác nhau dựa trên phần mở rộng của tệp hoặc các giá trị đầu vào khác.

Thực hiện câu lệnh case cho phần mở rộng tệp

Trong bước này, bạn sẽ học cách sử dụng câu lệnh case để xử lý các phần mở rộng tệp khác nhau trong shell script.

Giả sử bạn có một thư mục với nhiều tệp khác nhau và bạn muốn thực hiện các hành động khác nhau dựa trên phần mở rộng tệp.

Bạn có thể sử dụng câu lệnh case để đạt được điều này một cách dễ dàng và hiệu quả.

Đầu tiên, hãy tạo một thư mục mới và di chuyển đến thư mục đó bằng các lệnh sau:

mkdir ~/project/files
cd ~/project/files

Bây giờ, hãy tạo một vài tệp mẫu với các phần mở rộng khác nhau để thử nghiệm:

touch file1.txt file2.pdf file3.jpg file4.png file5.gif file6.doc

Tiếp theo, tạo một shell script mới có tên file_operations.sh trong thư mục ~/project/files:

nano file_operations.sh

Thêm đoạn code sau vào script để thực hiện các thao tác dựa trên đuôi tệp:

#!/bin/bash

for file in *; do
  case "$file" in
    *.txt)
      echo "Text file: $file"
      ;;
    *.pdf)
      echo "PDF file: $file"
      ;;
    *.jpg | *.png | *.gif)
      echo "Image file: $file"
      ;;
    *.doc)
      echo "Document file: $file"
      ;;
    *)
      echo "Unsupported file type: $file"
      ;;
  esac
done

Lưu và thoát khỏi file sau khi đã thêm đoạn code trên.

Cấp quyền thực thi cho script vừa tạo để có thể chạy được:

chmod +x file_operations.sh

Bây giờ, hãy chạy script để xem kết quả thực thi:

./file_operations.sh

Ví dụ về đầu ra của script sau khi thực thi:

Text file: file1.txt
PDF file: file2.pdf
Image file: file3.jpg
Image file: file4.png
Image file: file5.gif
Document file: file6.doc

Trong script, câu lệnh case kiểm tra phần mở rộng của tệp và thực hiện hành động tương ứng.

Các mẫu *.txt, *.pdf, *.jpg | *.png | *.gif*.doc khớp với phần mở rộng tệp.

Thông báo thích hợp sẽ được in cho từng loại tệp, giúp bạn dễ dàng quản lý.

Mẫu * là trường hợp mặc định, xử lý mọi loại tệp không được hỗ trợ.

Ví dụ này minh họa cách bạn có thể sử dụng câu lệnh case để tự động hóa các tác vụ quản lý tệp dựa trên phần mở rộng tệp.

Tự động hóa các thao tác Backup với lệnh case

Trong bước này, bạn sẽ học cách sử dụng lệnh case để tự động hóa việc backup các loại file khác nhau.

Giả sử bạn có một thư mục chứa nhiều loại file khác nhau và muốn tạo bản backup cho từng loại file. Bạn có thể sử dụng câu lệnh case để thực hiện việc này.

Đầu tiên, hãy tạo một thư mục mới và di chuyển đến thư mục đó:

mkdir ~/project/backup
cd ~/project/backup

Bây giờ, hãy tạo một vài file mẫu với các đuôi mở rộng khác nhau:

touch file1.txt file2.pdf file3.jpg file4.png file5.gif file6.doc

Tiếp theo, tạo một shell script mới có tên backup.sh trong thư mục ~/project/backup:

nano backup.sh

Thêm đoạn code sau vào script:

#!/bin/bash

for file in *; do
  case "$file" in
    *.txt)
      echo "Backing up text file: $file"
      cp "$file" "${file%.txt}.txt.bak"
      ;;
    *.pdf)
      echo "Backing up PDF file: $file"
      cp "$file" "${file%.pdf}.pdf.bak"
      ;;
    *.jpg | *.png | *.gif)
      echo "Backing up image file: $file"
      cp "$file" "${file%.*}.bak"
      ;;
    *.doc)
      echo "Backing up document file: $file"
      cp "$file" "${file%.doc}.doc.bak"
      ;;
    *)
      echo "Skipping unsupported file type: $file"
      ;;
  esac
done

Lưu và thoát file.

Cấp quyền thực thi cho script:

chmod +x backup.sh

Bây giờ, hãy chạy script:

./backup.sh

Ví dụ về output:

Backing up text file: file1.txt
Backing up PDF file: file2.pdf
Backing up image file: file3.jpg
Backing up image file: file4.png
Backing up image file: file5.gif
Backing up document file: file6.doc

Trong script, câu lệnh case kiểm tra đuôi mở rộng của file và thực hiện hành động backup tương ứng. Với mỗi loại file, script tạo một file backup có cùng tên nhưng với đuôi mở rộng .bak. Mẫu *.jpg | *.png | *.gif khớp với tất cả các file ảnh, và file backup được tạo với cùng tên gốc nhưng không có đuôi mở rộng.

Ví dụ này minh họa cách bạn có thể sử dụng câu lệnh case để tự động hóa các thao tác backup dựa trên đuôi mở rộng của file.

Kết luận cho linux case command

```html

Vậy là chúng ta đã cùng nhau khám phá lệnh linux case command, một công cụ mạnh mẽ để xử lý các tình huống khác nhau trong shell script. Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về cú pháp và cách sử dụng lệnh case. Đừng ngần ngại thử nghiệm với các ví dụ khác nhau để làm quen với nó nhé. Lệnh case giúp code của bạn trở nên dễ đọc và dễ bảo trì hơn rất nhiều. Hãy nhớ rằng, việc thực hành thường xuyên là chìa khóa để thành thạo bất kỳ công cụ nào. Chúc bạn thành công trên con đường chinh phục Linux và viết những script thật hiệu quả! Hãy áp dụng kiến thức này vào các dự án thực tế để thấy được sức mạnh của nó.

```
Last Updated : 17/10/2025