Script Bash et conditions IF

Résolu
pcsystemd Messages postés 734 Statut Membre -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
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.
Configuration: Linux Debian
Mozilla 1.8.1.14

1 réponse

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
    ;-))
    7
    1. pcsystemd Messages postés 734 Statut Membre 23
       
      Merci jipicy je test demain.
      0
    2. pcsystemd Messages postés 734 Statut Membre 23
       
      Merci cela fonctionne c'était bien elif .
      0
      1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > pcsystemd Messages postés 734 Statut Membre
         
        Alors... si c'était bien ça... ;-))
        0
    3. mourad.ounough Messages postés 28 Statut Membre
       
      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
      0
    4. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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  
      ...
      0