#!/usr/bin/bash # Comparaison if,elif,else,fi avec la primitive test # help if read -p "Entrez un nombre positif ou négatif : " nb if test "$nb" -lt 0; then echo "$nb est négatif" elif test "$nb" -eq 0; then echo "$nb est nul" else echo "$nb est positif" fi # Idem avec [ ] syntaxe alternative à test # help [ if [ "$nb" -lt 0 ]; then echo "$nb est négatif" elif [ "$nb" -eq 0 ]; then echo "$nb est nul" else echo "$nb est positif" fi # Avec and (-a) et or (-o) # Pour les besoins de l'exemple : on aurait pu bien sûr utiliser la syntaxe "-le" if [ "$nb" -lt 0 -o "$nb" -eq 0 ]; then echo "$nb est inférieur ou égal à zéro" else echo "$nb est positif" fi # palindrome : man rev read -p "Choisis un palindrome : " pal if [ $(echo $pal|rev) = $pal ]; then echo "$pal est un palindrome" else echo "$pal n'est pas un palindrome" fi # comparaison avec le code de sortie d'une commande linux read -p "Entrez le nom d'un utilisateur : " utilisateur if who |grep -q $utilisateur ; then echo "$utilisateur est connecté" else echo "$utilisateur n'est pas connecté" fi # Alternative à plusieurs elif... # help case read -p "Quelle distribution préfères-tu entre Ubuntu, Fedora ou Manjaro ? " distro case $distro in Ubuntu) echo "Tu es plutôt adepte de la famille Debian";; Fedora) echo "Tu es plutôt adepte de la famille RedHat";; Manjaro) echo "Tu es plutôt adepte de la famille ArchLinux";; *) echo "Connais pas !" esac # Cette syntaxe accepte aussi un ou logique '|' et des motifs comme []... case $distro in [uU]buntu) echo "Tu es plutôt adepte de la famille Debian";; [fF][eE][dD][oO][rR][aA]) echo "Tu es plutôt adepte de la famille RedHat";; Manjaro|manjaro) echo "Tu es plutôt adepte de la famille ArchLinux";; *) echo "Connais pas !" esac