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
và *.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.