Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/12/2010, 16h46   #1
Invité de passage
 
Inscription : juillet 2009
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 18
Points : 3
Points : 3
Par défaut problème script shell

salut à tous,

Voilà j'essaye de réaliser un script qui permet de gérer des comptes utilisateurs, des groupes mais aussi les droits de fichiers..Le programme doit avoir des sous menus, je suis au début de mon code mais je bloque parce que j'ai une erreur qui survient la voici : ./script.sh: 18: 1: not found

voici mon bout de code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#!/bin/sh
 
echo "1- Gestion des utilisateurs"
echo "2- Gestion des groupes"
echo "3- Gestion des droits "
 
echo "Veuillez entrez le numéro de votre choix"
 
read nber
 
if($nber == 1)
then
    echo"a)- Ajouter un utilisateur"
    echo"b)- Modifier un utilisateur"
    echo"c)- Supprimer un utilisateur"
 
 
fi
si quelqu'un a une meilleure méthode de réalisation de menu peut il me la suggérer, je débute et je ne sais pas trop comment m'y prendre.
Merci d'avance
joelulrich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 18h23   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 060
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 060
Points : 4 116
Points : 4 116
Bonjour,

ce type de "formulaire", peut être réaliser avec select

pour l'erreur retournée par le shell :l'évaluation arithmétique se fait entre double parenthèses
et le $ n'est pas indispensable si tu n'utilises pas les accolades et il faut un espace entre if et ((
Cela peut se simplifier, puisque lors d'une évaluation arithmétique zéro retourne faux :
Code :
1
2
3
4
(( 0 )) && echo ok || echo KO
KO
(( 1 )) && echo ok || echo KO
ok
mais si tu as l'intention de faire un if pour chaque nombre, tu devrais te tourner vers case :
Code :
1
2
3
4
5
6
7
8
9
10
case $nber in
1) echo"a)- Ajouter un utilisateur"
    echo"b)- Modifier un utilisateur"
    echo"c)- Supprimer un utilisateur"
;;
2) ...
;;
3) ...
;;
esac
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 10h51   #3
Invité de passage
 
Inscription : juillet 2009
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 18
Points : 3
Points : 3
Merci je vais essayer le case...
joelulrich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 12h09   #4
Invité de passage
 
Inscription : juillet 2009
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 18
Points : 3
Points : 3
Besoin d'un coup de pouce, voilà j'ai utilisé des "case" pour gérer mes différents menus mais là je bloque au niveau de l'ajout d'un compte utilisateur car pour pouvoir créér un utlisateur faut entrer le nom de celui-ci hors il doit être passé en commande mais je ne sais pas trop comment y procéder; s'il y a des erreurs ou bien d'autres suggestions de réalisation, veuillez m'en faire part; voici le code

Code :
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
 
 
#!/bin/sh
 
echo "1- Gestion des utilisateurs"
echo "2- Gestion des groupes"
echo "3- Gestion des droits \n"
 
echo "  Veuillez entrez le numéro de votre choix"
 
read nber
 
case $nber in 
 
    "1")
       echo "a) - Ajouter un utilisateur"
       echo "b) - Modifier un utilisateur"
       echo "c) - Supprimer un utilisateur \n"
       ;;
    "2")
       echo "d) - Ajouter un groupe"
       echo "e) - Modifier un groupe"
       echo "f) - Supprimer un groupe\n"
       ;;
    "3")
       echo "g) - Modifier les droits \n"
       ;;
esac
 
 
echo "  Veuillez entrez la lettre de votre choix"
 
read nber1 
 
case $nber1 in
 
    "a") 
       echo " " 
       ;;
esac
joelulrich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 12h53   #5
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 060
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 060
Points : 4 116
Points : 4 116
Ah... mais il faut proposer la saisie pour chaque cas :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
echo "choix 1
choix 2"
read nb
case $nb in
1) echo "choix 1
   choix 2"
   read nbr
      case nbr in
      1) echo "$nb $nbr";;
      2) echo "autre";;
      esac
   ;;
2) echo "choix 1
   choix 2"
   read nbr
   ;;
esac
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/12/2010, 17h27   #6
Invité de passage
 
Inscription : juillet 2009
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 18
Points : 3
Points : 3
j'ai implémenté le code et je bloque à un niveau, en fait que ce soit pour modifier le groupe ou l'utilisateur on doit gérer les options et malheureusement mes fonctions de modification ne prennent pas en compte les options au niveau du "usermod" et "groupmod"et je me demandais comment les modifier..voici le code


Code :
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 
 
#!/bin/sh
 
menu()
{
    echo "1- Gestion des utilisateurs" 
    echo "2- Gestion des groupes"
    echo "3- Gestion des droits \n"
 
    echo "  Veuillez entrez le numéro de votre choix"
 
    read nber 
 
    case $nber in 
 
	"1")
	    echo "a) - Ajouter un utilisateur"
	    echo "b) - Modifier un utilisateur"
	    echo "c) - Supprimer un utilisateur \n"
 
	    echo "  Veuillez entrez la lettre de votre choix"
 
	    read letter 
 
	    case $letter in
 
		"a")
 
		    add_user;;
 
		"b")
 
	            modif_user;;
 
		"c")
	            del_user;;
	    esac
 
	    ;;
 
 
	"2")
	    echo "d) - Ajouter un groupe"
	    echo "e) - Modifier un groupe"
	    echo "f) - Supprimer un groupe\n"
 
	    echo "  Veuillez entrez la lettre de votre choix"
 
	    read letter 
 
	    case $letter in
 
		"d") 
 
		    add_group;;
 
		"e")
 
		    modif_group;;
 
		"f")
 
		    del_group;;
	    esac
	    ;;
 
	"3")
	    echo "g) - Modifier des droits\n"
 
    esac 
}
 
add_user()
{
    echo "Veuillez entrer le nom de l'utilisateur \n"
 
    read user
    adduser $user
}
 
modif_user()
{
 
    echo "Vous pouvez modifier l'utlisateur\n"
    read user
    usermod $user
}
 
del_user()
{
    read user
    userdel $user
 
}
 
add_group()
{
 
    read group     
    groupadd $group
}
 
modif_group()
{
    echo "Vous pouvez modifier le groupe\n"
    read group
    groupmod $group
}
 
del_group()
{
    read group
    groupdel $group
}
 
 
menu
joelulrich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 18h14   #7
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 060
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 060
Points : 4 116
Points : 4 116
à part demander à l'utilisateur du script, selon ce qu'il doit pouvoir modifier, pour chaque option .?. :
Code :
1
2
3
read -rp' nouveau commentaire : ' comment
#etc...
usermod ${comment:+-f \'$comment\'} #etc...
...
?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h32.


 
 
 
 
Partenaires

Hébergement Web