Nhập môn Bash Scripting
Alex Scriven
Data Scientist
CASE có thể tối ưu hơn IF khi có nhiều điều kiện hoặc điều kiện phức tạp.
Giả sử bạn muốn kiểm tra các điều kiện và hành động sau:
sydney thì chuyển vào thư mục /sydneymelbourne hoặc brisbane thì xóa tệpcanberra thì đổi tên thành IMPORTANT_filename, trong đó filename là tên gốcBạn có thể viết nhiều IF như sau:
grep trên đối số ARGV đầu tiên để làm điều kiện.if grep -q 'sydney' $1; then
mv $1 sydney/
fi
if grep -q 'melbourne|brisbane' $1; then
rm $1
fi
if grep -q 'canberra' $1; then
mv $1 "IMPORTANT_$1"
fi
PATTERN. Ví dụ Air* là 'bắt đầu bằng Air' hoặc *hat* là 'chứa hat'.Cú pháp CASE cơ bản:
case 'STRINGVAR' inPATTERN1) COMMAND1;; PATTERN2) COMMAND2;;
*) DEFAULT COMMAND;;
esac Cuối cùng, từ kết thúc là 'esac'
Cú pháp CASE cơ bản:
case 'STRING' in PATTERN1) COMMAND1;; PATTERN2) COMMAND2;;*) DEFAULT COMMAND;;esac
Câu lệnh IF cũ của chúng ta:
if grep -q 'sydney' $1; then
mv $1 sydney/
fi
if grep -q 'melbourne|brisbane' $1; then
rm $1
fi
if grep -q 'canberra' $1; then
mv $1 "IMPORTANT_$1"
fi
Câu lệnh CASE mới:
case $(cat $1) in*sydney*) mv $1 sydney/ ;; *melbourne*|*brisbane*) rm $1 ;; *canberra*) mv $1 "IMPORTANT_$1" ;;*) echo "No cities found" ;; esac
Nhập môn Bash Scripting