Probleme shell

Résolu
hmid30 Messages postés 147 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 30 décembre 2015 - 11 déc. 2009 à 20:06
hmid30 Messages postés 147 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 30 décembre 2015 - 11 déc. 2009 à 20:40
Bonjour,
je suis nouveau en programmation et en programmation shell.
Voici mon probleme:
"Ecrire un programme shell connu prenant en argument un nom d’utilisateur qui
affiche 0 s’il est enregistré dans le fichier pass, 1 sinon."

Voici mon programme mais qui ne fonctionne pas, il affiche sans cesse erreur:
#!/bin/bash

cd /etc/
if [ "grep $1 passwd" = '0' ]
then
echo "L'utilisateur existe"
elif [ "grep $1 passwd" = '1' ]
then
echo "L'utilisateur n'existe pas"
else
echo "Erreur"
fi

Pouvez vous me dire ce qui ne vas pas?

Merci.
A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
11 déc. 2009 à 20:26
Salut,

Déjà quand on veut récupérer le résultat d'une commande la syntaxe est la suivante :

"$(commande)"


Ensuite dans ton cas ce n'est pas le contenu qui nous intéresse mais le code retour, à savoir vrai (0) ou faux (1).

Dans ce cas il faut comparer le code retour de ta commande qui se trouve dans la variable "$?" après l'exécution de ladite commande.

Ce qui donnerait :

cd /etc/
grep "$1" passwd
code_retour="$?"
if [ "$code_retour" = 0 ]
then
echo "L'utilisateur existe"
else
echo "L'utilisateur n'existe pas"
fi 

0
hmid30 Messages postés 147 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 30 décembre 2015 39
11 déc. 2009 à 20:40
Ok, merci pour les conseils, cela fonctionne.
0

Discussions similaires