Lệnh case trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh case của Linux để xử lý các phần mở rộng tệp khác nhau trong một shell script. Lab này bao gồm cú pháp và cách sử dụng của lệnh case, trình bày cách triển khai các câu lệnh case cho phần mở rộng tệp và chỉ ra cách tự động hóa các hoạt động sao lưu bằng lệnh case. Lab này được thiết kế để giúp bạn phát triển các kỹ năng làm việc với các tiện ích khác nhau trong môi trường Linux.

Lab bắt đầu bằng cách giải thích cú pháp và cách sử dụng của lệnh case, đây là một công cụ mạnh mẽ để đưa ra quyết định dựa trên giá trị của một biến hoặc biểu thức. Bạn sẽ học cách cấu trúc câu lệnh case và xem các ví dụ về ứng dụng thực tế của nó.

Tiếp theo, lab hướng dẫn bạn quy trình triển khai các câu lệnh case để xử lý các phần mở rộng tệp khác nhau. Bạn sẽ tạo một shell script thực hiện các hành động khác nhau dựa trên loại tệp, chẳng hạn như xác định tài liệu văn bản, tệp PDF và hình ảnh.

Cuối cùng, lab trình bày cách sử dụng lệnh case để tự động hóa các hoạt động sao lưu. Bạn sẽ học cách tạo một script sao lưu các tệp có phần mở rộng cụ thể đến các vị trí khác nhau, giúp bạn quản lý và sắp xếp dữ liệu dễ dàng hơn.

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

Trong bước này, bạn sẽ học cú pháp và cách sử dụng của 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 một 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

Dưới đâ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 tệp hoặc các giá trị đầu vào khác.

Triển khai 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 một 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.

Đầu tiên, tạo một thư mục mới và điều hướng đến nó:

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

Bây giờ, hãy tạo một số tệp mẫu với các phần 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 file_operations.sh trong thư mục ~/project/files:

nano file_operations.sh

Thêm mã sau vào script:

#!/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 tệp.

Làm cho script có thể thực thi:

chmod +x file_operations.sh

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

./file_operations.sh

Ví dụ đầu ra:

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 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 và thông báo thích hợp được in cho từng loại tệp. 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 Hoạt động Sao lưu bằng 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 các hoạt động sao lưu cho các loại tệp khác nhau.

Giả sử bạn có một thư mục với nhiều tệp khác nhau và bạn muốn tạo bản sao lưu cho từng loại tệp. Bạn có thể sử dụng câu lệnh case để đạt được điều này.

Đầu tiên, tạo một thư mục mới và điều hướng đến nó:

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

Bây giờ, hãy tạo một số tệp mẫu với các phần 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 mã 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 tệp.

Làm cho script có thể thực thi:

chmod +x backup.sh

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

./backup.sh

Ví dụ đầu ra:

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 phần mở rộng tệp và thực hiện hành động sao lưu tương ứng. Đối với mỗi loại tệp, script tạo một tệp sao lưu có cùng tên nhưng có phần mở rộng .bak. Mẫu *.jpg | *.png | *.gif khớp với tất cả các tệp hình ảnh và tệp sao lưu được tạo với cùng tên cơ sở nhưng không có phần 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 hoạt động sao lưu dựa trên phần mở rộng tệp.

Tóm tắt

Trong lab này, trước tiên bạn đã học cú pháp và cách sử 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 một biến hoặc biểu thức. Bạn đã khám phá cấu trúc cơ bản của lệnh case và xem một ví dụ minh họa cách sử dụng nó để kiểm tra phần mở rộng tệp và thực hiện các hành động khác nhau cho phù hợp. Trong bước thứ hai, bạn đã triển khai câu lệnh case để xử lý các phần mở rộng tệp khác nhau trong một shell script, tự động hóa các thao tác tệp dựa trên loại tệp.

400+ câu lệnh phổ biến trong Linux