IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Test en bash


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 241
    Par défaut Test en bash
    Bonjour à tous.

    Voila, je suis apprenti shell unix (en particulier linux, et plus particuliérement ubuntu), et je suis en train de faire un script qui se lance au démarrage d'une connexion ssh.
    Le script doit afficher un message de bienvenue lors de la connexion d'un utilisateur.
    - si l'utilisateur est root, on affiche le contenu d'un fichier text
    - sinon, on demande la saisit d'un mot de pass.

    Pas de problème pour les actions, juste un pour le IF... Voila ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if $USER!="root"
            then
                    echo Please enter password to seen the last message...
                    sudo cat /root/last.txt
            else
                    cat /root/last.txt
    fi
    Le message suivant s'affiche quand on se log en root:

    -bash: root!=root : commande introuvable
    Alors je comprends le message, mais je ne voit pas comment le modifier...


    Merci pour votre aide...

  2. #2
    Rédacteur
    Avatar de CedrX
    Inscrit en
    Avril 2007
    Messages
    1 111
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 111
    Par défaut
    Comme ceci ça marchera mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if [ $USER!="root" ]
            then
                    echo Please enter password to seen the last message...
                    sudo cat /root/last.txt
            else
                    cat /root/last.txt
    fi

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 241
    Par défaut
    L'erreur a en effet disparut, mais la phrase "Please enter password to seen the last message..." s'affiche quand même, alors qu'il n'y en a pas lieu quand je me connecte en root...

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 654
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 654
    Par défaut
    Il faut des espaces autour du signe égal (ou son contraire !=)pour effectuer une évaluation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if [ "$USER" != "root" ]; then ...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 241
    Par défaut
    Merci beaucoup ça marche parfaitement...

    Petit plus, serais-tu comment tester l'existence d'un fichier ?

    J'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if /root/history/last_${DATE}.txt
    Mais ça m'affiche :

    /root/history/last_20091030.txt: 1: TEEEEEEEEST5: not found
    Sachant que "TEEEEEEEEST5" est le contenu...

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 654
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 654
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if [ -f /root/history/last_${DATE}.txt ]; then ...
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 241
    Par défaut
    Merci beaucoup !!! Ca marche !

    Et encore désolé de t'avoir embêté

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de test if en bash
    Par tortue_22 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 07/05/2010, 09h46
  2. bash: if, test et *
    Par cyberserker dans le forum Linux
    Réponses: 8
    Dernier message: 19/06/2009, 22h51
  3. Réponses: 8
    Dernier message: 01/08/2007, 15h38
  4. Test d'expression avec bash
    Par Fluxy dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 28/03/2007, 07h56
  5. Bash : Test d'une chaine
    Par kimlee dans le forum Administration système
    Réponses: 2
    Dernier message: 26/01/2007, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo