Introducere în Bash Scripting
Alex Scriven
Data Scientist
Instrucțiunile CASE pot fi mai eficiente decât IF atunci când există condiții multiple sau complexe.
Să presupunem că doriți să testați următoarele condiții și acțiuni:
sydney, mutați-l în directorul /sydneymelbourne sau brisbane, ștergeți-lcanberra, redenumiți-l ca IMPORTANT_filename, unde filename este numele originalPuteți construi mai multe instrucțiuni IF astfel:
grep pe primul argument ARGV pentru condiție.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. De exemplu, Air* pentru „începe cu Air" sau *hat* pentru „conține hat".Formatul de bază al instrucțiunii CASE:
case 'STRINGVAR' inPATTERN1) COMMAND1;; PATTERN2) COMMAND2;;
*) DEFAULT COMMAND;;
esac În final, cuvântul de încheiere este „esac"
Formatul de bază al instrucțiunii CASE:
case 'STRING' in PATTERN1) COMMAND1;; PATTERN2) COMMAND2;;*) DEFAULT COMMAND;;esac
Instrucțiunea IF anterioară:
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
Noua instrucțiune CASE:
case $(cat $1) in*sydney*) mv $1 sydney/ ;; *melbourne*|*brisbane*) rm $1 ;; *canberra*) mv $1 "IMPORTANT_$1" ;;*) echo "No cities found" ;; esac
Introducere în Bash Scripting