summaryrefslogtreecommitdiff
path: root/exemple05
blob: 72ef4f8b44c1f32fe3f4d6b0c780c5eedcb18fd1 (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
#!/usr/bin/bash
set -x
# 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
# 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