Bonjour,

Je cherche à faire un menu paramétrable pour que celui-ci n'affiche plus les étapes/questions déjà réalisées.
Voici ce que je fais :
- le script va chercher la valeur de variables E1, E2, E3.... correspondant à une action réalisée dans un fichier de configuration action_realisees.txt

Cela fonctionne mais je me demande s'il y a moyen de faire plus simple.

Fred M
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
#!/bin/bash
 
#Fichier de configuration qui stocke les actions réalisées. Exemple :  E1="Oui" alors l'Etape 1 n'est plus proposée.
source action_realisees.txt
 
#Etape 1
Etape1()
{
echo "Etape 1 réalisée"
}
 
#Etape 2
Etape2()
{
echo "Etape 2 réalisée"
}
 
#Etape 3
Etape3()
{
echo "Etape 3 réalisée"
}
 
echo "========================================================================================================"
echo "Voulez-vous réinitialiser le menu ? (o/N)"
echo "========================================================================================================"
read -r ETP0
: "${ETP0:="N"}"
if [[ ${ETP0} == [YyOo] ]]; then
        echo "Menu réinitialisé"
        echo>action_realisees.txt
        unset E1 E2 E3
fi
 
#Test si Etape réalisée
if [[ ${E1} == "" ]]; then
        echo "========================================================================================================"
        echo "Etape 1 : Voulez-vous faire l'étape 1 ? (o/N)"
        echo "========================================================================================================"
        read -r ETP1
        : "${ETP1:="N"}"
        if [[ ${ETP1} == [YyOo] ]]; then
                Etape1
                #Etape réalisée
                echo "E1=\"Oui\"">action_realisees.txt
        fi
fi
 
 
#Test si Etape réalisée
if [[ ${E2} == "" ]]; then
        echo "========================================================================================================"
        echo "Etape 2 : Voulez-vous faire l'étape 2 ? (o/N)"
        echo "========================================================================================================"
        read -r ETP2
        : "${ETP2:="N"}"
        if [[ ${ETP2} == [YyOo] ]]; then
                Etape2
                #Etape réalisée
                echo "E2=\"Oui\"">>action_realisees.txt
        fi
fi
 
#Test si Etape réalisée
if [[ ${E3} == "" ]]; then
        echo "========================================================================================================"
        echo "Etape 3 : Voulez-vous faire l'étape 3 ? (o/N)"
        echo "========================================================================================================"
        read -r ETP3
        : "${ETP1:="N"}"
        if [[ ${ETP3} == [YyOo] ]]; then
                Etape3
                #Etape réalisée
                echo "E3=\"Oui\"">>action_realisees.txt
        fi
fi