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
[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.