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 :

problème script shell


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut problème script shell
    salut à tous,

    Voilà j'essaye de réaliser un script qui permet de gérer des comptes utilisateurs, des groupes mais aussi les droits de fichiers..Le programme doit avoir des sous menus, je suis au début de mon code mais je bloque parce que j'ai une erreur qui survient la voici : ./script.sh: 18: 1: not found

    voici mon bout de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    #!/bin/sh
     
    echo "1- Gestion des utilisateurs"
    echo "2- Gestion des groupes"
    echo "3- Gestion des droits "
     
    echo "Veuillez entrez le numéro de votre choix"
     
    read nber
     
    if($nber == 1)
    then
        echo"a)- Ajouter un utilisateur"
        echo"b)- Modifier un utilisateur"
        echo"c)- Supprimer un utilisateur"
     
     
    fi
    si quelqu'un a une meilleure méthode de réalisation de menu peut il me la suggérer, je débute et je ne sais pas trop comment m'y prendre.
    Merci d'avance

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,

    ce type de "formulaire", peut être réaliser avec select

    pour l'erreur retournée par le shell :l'évaluation arithmétique se fait entre double parenthèses
    et le $ n'est pas indispensable si tu n'utilises pas les accolades et il faut un espace entre if et ((
    Cela peut se simplifier, puisque lors d'une évaluation arithmétique zéro retourne faux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (( 0 )) && echo ok || echo KO
    KO
    (( 1 )) && echo ok || echo KO
    ok
    mais si tu as l'intention de faire un if pour chaque nombre, tu devrais te tourner vers case :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    case $nber in
    1) echo"a)- Ajouter un utilisateur"
        echo"b)- Modifier un utilisateur"
        echo"c)- Supprimer un utilisateur"
    ;;
    2) ...
    ;;
    3) ...
    ;;
    esac
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut
    Merci je vais essayer le case...

  4. #4
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut
    Besoin d'un coup de pouce, voilà j'ai utilisé des "case" pour gérer mes différents menus mais là je bloque au niveau de l'ajout d'un compte utilisateur car pour pouvoir créér un utlisateur faut entrer le nom de celui-ci hors il doit être passé en commande mais je ne sais pas trop comment y procéder; s'il y a des erreurs ou bien d'autres suggestions de réalisation, veuillez m'en faire part; voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     
    #!/bin/sh
     
    echo "1- Gestion des utilisateurs"
    echo "2- Gestion des groupes"
    echo "3- Gestion des droits \n"
     
    echo "  Veuillez entrez le numéro de votre choix"
     
    read nber
     
    case $nber in 
     
        "1")
           echo "a) - Ajouter un utilisateur"
           echo "b) - Modifier un utilisateur"
           echo "c) - Supprimer un utilisateur \n"
           ;;
        "2")
           echo "d) - Ajouter un groupe"
           echo "e) - Modifier un groupe"
           echo "f) - Supprimer un groupe\n"
           ;;
        "3")
           echo "g) - Modifier les droits \n"
           ;;
    esac
     
     
    echo "  Veuillez entrez la lettre de votre choix"
     
    read nber1 
     
    case $nber1 in
     
        "a") 
           echo " " 
           ;;
    esac

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Ah... mais il faut proposer la saisie pour chaque cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    echo "choix 1
    choix 2"
    read nb
    case $nb in
    1) echo "choix 1
       choix 2"
       read nbr
          case nbr in
          1) echo "$nb $nbr";;
          2) echo "autre";;
          esac
       ;;
    2) echo "choix 1
       choix 2"
       read nbr
       ;;
    esac
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Par défaut
    j'ai implémenté le code et je bloque à un niveau, en fait que ce soit pour modifier le groupe ou l'utilisateur on doit gérer les options et malheureusement mes fonctions de modification ne prennent pas en compte les options au niveau du "usermod" et "groupmod"et je me demandais comment les modifier..voici le code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
     
    #!/bin/sh
     
    menu()
    {
        echo "1- Gestion des utilisateurs" 
        echo "2- Gestion des groupes"
        echo "3- Gestion des droits \n"
     
        echo "  Veuillez entrez le numéro de votre choix"
     
        read nber 
     
        case $nber in 
     
    	"1")
    	    echo "a) - Ajouter un utilisateur"
    	    echo "b) - Modifier un utilisateur"
    	    echo "c) - Supprimer un utilisateur \n"
     
    	    echo "  Veuillez entrez la lettre de votre choix"
     
    	    read letter 
     
    	    case $letter in
     
    		"a")
     
    		    add_user;;
     
    		"b")
     
    	            modif_user;;
     
    		"c")
    	            del_user;;
    	    esac
     
    	    ;;
     
     
    	"2")
    	    echo "d) - Ajouter un groupe"
    	    echo "e) - Modifier un groupe"
    	    echo "f) - Supprimer un groupe\n"
     
    	    echo "  Veuillez entrez la lettre de votre choix"
     
    	    read letter 
     
    	    case $letter in
     
    		"d") 
     
    		    add_group;;
     
    		"e")
     
    		    modif_group;;
     
    		"f")
     
    		    del_group;;
    	    esac
    	    ;;
     
    	"3")
    	    echo "g) - Modifier des droits\n"
     
        esac 
    }
     
    add_user()
    {
        echo "Veuillez entrer le nom de l'utilisateur \n"
     
        read user
        adduser $user
    }
     
    modif_user()
    {
     
        echo "Vous pouvez modifier l'utlisateur\n"
        read user
        usermod $user
    }
     
    del_user()
    {
        read user
        userdel $user
     
    }
     
    add_group()
    {
     
        read group     
        groupadd $group
    }
     
    modif_group()
    {
        echo "Vous pouvez modifier le groupe\n"
        read group
        groupmod $group
    }
     
    del_group()
    {
        read group
        groupdel $group
    }
     
     
    menu

Discussions similaires

  1. script shell: problème avec le caractère espace
    Par Le fut dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 04/05/2017, 11h49
  2. Problème Script shell
    Par bombers dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 02/12/2014, 15h57
  3. problème script shell
    Par ben_tiba_asma dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 22/10/2011, 18h12
  4. Problème Script SHell
    Par foxrol dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 21/10/2011, 19h02
  5. problème script shell
    Par jeje69 dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 09/01/2008, 14h30

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