Re: [Script BASH] récupérer une chaîne pour traitement
dexinou wrote:
> Salut,
>
> voilà j'essaie vainement de créer un simple script bash qui vérifie si le
> nom de l'utilisateur existe dans le fichier /etc/passwd si oui alors il
> continue à lancer le script et sinon il s'arrête mais je n'y arrive pas.
>
>
>
> [code]#!/bin/sh
>
> #
>
>
>
> echo -n "Nom de votre utilisateur? : "
>
> read USER
>
>
>
> VERIF=`grep $USER /etc/passwd | cut -d: -f1`
il y a 2 problèmes ici:
- essaye avec USER=/bin/bash...
- si grep foire, VERIF ne sera pas vide, même si $USER n'existe pas
essaye plutot:
# /dev/null est plus portable que -q).
grep "^${user}:" /etc/passwd > /dev/null
if [ $? = 0 ]; then
echo "user pas la ou autre probleme..."
exit 1
fi
ou utilise getent:
VERIF=`/usr/bin/getent passwd $USER`
>
> if [ ! -e "$VERIF" ]; then
>
comme déjà dit, il faut utiliser -z. ou alors if [ "${VERIF}" = "" ].
> echo "L'utilisateur $USER n'existe pas, vous devez d'abord le créer!!"
>
> else [ -e "$VERIF" ];
>
> echo "L'utilisateur $USER existe bien...lancement du script..."
>
> [...][/code]
>
>
>
> Voilà, si quelqu'un a une idée...car je ne sais pas si c'est bien la
> commande qu'il faut pour tester si la valeur est vrai ou fausse.
>
>
Reply to: