blob: eb12557440419950d95ed396f22d40d7044669a0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#!/usr/bin/bash
set -xv
# 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
# Gestion des erreurs
if [ $# -lt 1 ]; then
echo "$(basename $0) demande un ou plusieurs arguments" >&2
exit 1
else
echo "Hello $* !"
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
# man tr
read -p "Choisis un palindrome : " rep
pal=$(echo $rep|tr [A-Z] [a-z])
if [ $(echo $pal|rev) = $pal ]; then
echo "$rep est un palindrome"
else
echo "$rep 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
|