Úvod do Bash skriptování
Alex Scriven
Data Scientist
Příkazy CASE mohou být efektivnější než IF při více nebo složitých podmínkách.
Předpokládejme, že chcete otestovat tyto podmínky a akce:
sydney, přesuňte jej do adresáře /sydneymelbourne nebo brisbane, odstraňte jejcanberra, přejmenujte jej na IMPORTANT_filename, kde filename je původní názevLze použít více příkazů IF:
grep na prvním argumentu ARGV pro podmínku.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 lze použít regex, např. Air* pro „začíná na Air" nebo *hat* pro „obsahuje hat".Základní formát příkazu CASE:
case 'STRINGVAR' inPATTERN1) COMMAND1;; PATTERN2) COMMAND2;;
*) DEFAULT COMMAND;;
esac Závěrečné slovo je 'esac'
Základní formát příkazu CASE:
case 'STRING' in PATTERN1) COMMAND1;; PATTERN2) COMMAND2;;*) DEFAULT COMMAND;;esac
Náš původní příkaz IF:
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
Náš nový příkaz CASE:
case $(cat $1) in*sydney*) mv $1 sydney/ ;; *melbourne*|*brisbane*) rm $1 ;; *canberra*) mv $1 "IMPORTANT_$1" ;;*) echo "No cities found" ;; esac
Úvod do Bash skriptování