Téléchargement
illégal
Posez votre question Signaler

Script Bash et conditions IF [Résolu]

pcsystemd 423Messages postés 10 mai 2008Date d'inscription 1 mars 2012Dernière intervention - Dernière réponse le 13 avril 2012 à 12:00
Bonjour,
j'ai un bout de code dans mon fichier testmaj.sh :
#! /bin/bash

OMEMAJ="/home/${USER}"

if [ "${USER}" == "toto" ]
then
        
     REPMAJ="totorep"
        
else if [ "${USER}" == "tata" ]
then
        
        REPMAJ="tatarep"
        
else 

    echo "pas de dossier"
    exit 1
fi
exit 0

mais j'ai l'erreur :
./testmaj.sh: line 21: syntax error: unexpected end of file
Avez vous une idée?
Merci.
L'accès au savoir est la première liberté que chaque homme devrait avoir.
Lire la suite 

Script Bash et conditions IF »

6 réponses
Réponse
+7
moins plus
Salut,
#! /bin/bash

OMEMAJ="/home/${USER}"

if [ "${USER}" == "toto" ]
then
        
     REPMAJ="totorep"
        
elif [ "${USER}" == "tata" ]
then
        
        REPMAJ="tatarep"
        
else 

    echo "pas de dossier"
    exit 1
fi
exit 0
;-))
jipicy- 4 juil. 2008 à 20:22
Alors... si c'était bien ça... ;-))
mourad.ounough- 13 avril 2012 à 11:47
bonjour jpicy

jai une question sur ce sujet jai fait un script pour checker si le fichier est vide pas de mail ,alors s'il nest pas vide jenvoi le mail mais méme il est vide je recoi un mail (vide)

voila le script :

day='date "+%Y-%m-%d %H:%M:%S " '
ssh user@ip ' /home/directory/remotescript.sh' >> /home/directory/local/resultat.lst


[ -s /home/directory/local/resultat.lst ]

[ -e /home/directory/local/resultat.lst ]
echo $?

if [ 'echo $?' -eq 1 ];then


(
echo open ip@serveur
sleep 1
echo helo localhost
sleep 1
echo mail from: @group
sleep 1
echo rcpt to: admin@@domaine.com
sleep 1
echo data
sleep 1
echo subject: DAILY_CHECKLIST_$day
sleep 1
echo From: admin@@domaine.com
sleep 1
echo To: admin@@domaine.com
sleep 1
echo Cc: admin@@domaine.com
sleep 1
echo "Dear all,"
echo
echo
echo "The following check list is done : "
echo " "
echo
sleep 1
echo
echo
cat /home/directory/local/resultat.lst
echo
echo
echo "With Regards,"
echo "admin@@domaine.com team."



echo .
sleep 1
echo quit ) | telnet > /dev/null 2>&1



fi

rm /home/directory/local/resultat.lst


exit

#############################

merci a vous en avance

mes respects

cdt
zipe31- 13 avril 2012 à 12:00
Salut,

[ -s /home/directory/local/resultat.lst ]
[ -e /home/directory/local/resultat.lst ]


Il te faut choisir, ou l'un ou l'autre, mais pas les 2 ;-(
Mais dans ton cas il faut garder que la condition '-s' (on teste si la taille est différente de zéro).

echo $?
if [ 'echo $?' -eq 1 ];then


Idem, si tu affiches le code retour avec la commande "echo", alors le prochain "$?" (celui que tu testes ensuite) ne vaudra plus la valeur de retour de ton test "[ -s /home/directory/local/resultat.lst ]", mais la valeur de retour de "echo $?" ;-\

Dans ce cas il vaut meiux garder le résultat dans une variable :
[ -s /home/directory/local/resultat.lst ] 

retval=$? 
echo "${retval}" 

if [ "${retval}" -eq 1 ];then  
...
Ajouter un commentaire
Ce document intitulé « script Bash et conditions IF » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?