summaryrefslogtreecommitdiff
path: root/exemple5
blob: 157d9c629927b5d3f50c46fbd8286805cd451d9d (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
#!/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