Introduction à la programmation Bash
Alex Scriven
Data Scientist
Les instructions case peuvent être plus efficaces que IF quand il y a plusieurs conditions ou des conditions complexes.
Supposons que vous vouliez tester les conditions et actions suivantes :
sydney, le déplacer vers le répertoire /sydneymelbourne ou brisbane, le supprimercanberra, le renommer en IMPORTANT_filename où filename est le nom d'origineVous pourriez écrire plusieurs IF comme ceci :
grep sur le premier argument ARGV pour la condition.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, p. ex. Air* pour « commence par Air » ou *hat* pour « contient hat ».Format de base d'une instruction CASE :
case 'STRINGVAR' inPATTERN1) COMMAND1;; PATTERN2) COMMAND2;;
*) DEFAULT COMMAND;;
esac Enfin, le mot de fin est « esac »
Format de base d'une instruction CASE :
case 'STRING' in PATTERN1) COMMAND1;; PATTERN2) COMMAND2;;*) DEFAULT COMMAND;;esac
Notre ancien 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
Notre nouveau CASE :
case $(cat $1) in*sydney*) mv $1 sydney/ ;; *melbourne*|*brisbane*) rm $1 ;; *canberra*) mv $1 "IMPORTANT_$1" ;;*) echo "No cities found" ;; esac
Introduction à la programmation Bash