Partage
  • Partager sur Facebook
  • Partager sur Twitter

[BASH] afficher champ de /etc/passwd sous condi

    9 octobre 2018 à 10:23:23

    Bonjour, j'ai un TP à faire et à rendre sous peu et je n'arrive pas à faire marcher mon script bash.

    Le but du TP est de faire en sorte que dans le fichier /etc/passwd  si le troisième champ (c'est à dire l'UID) est > 500, alors on affiche le premier champ, soit le nom.

    Voici le sujet du TP :  Lister les utilisateurs  Écrire un script bash affichant la liste des noms de login des utilisateurs définis dans  /etc/passwd ayant un UID supérieur à 500.  Indication : for in $(cat /etc/passwd) permet de parcourir les lignes du dit fichier. 

    Le code que j'ai testé ressemble donc à cela :

    for ligne in $(cat /etc/passwd)
    do
         n=$(cut -d: -f3 $ligne)
         if [ $n -gt 500 ]; then
              echo $(cut -d: -f1 $ligne)
         fi
    done

    Pour chaque ligne dans /etc/passwd

    n prend la valeur du troisième champ (chaque champ étant séparé par des ':') de la ligne

    Si la valeur de n est supérieure (-gt) à 500, alors on affiche la valeur du premier champ de la ligne

    Sauf que je reçois une erreur du type : "cut: '...' line 4: [: -gt: unary operator expected



    -
    Edité par Guillot Tristan 9 octobre 2018 à 10:26:15

    • Partager sur Facebook
    • Partager sur Twitter

    [BASH] afficher champ de /etc/passwd sous condi

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown