[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: