Lister les groupes utilisateurs un par un verticalement
xunil2003
Messages postés
766
Date d'inscription
Statut
Membre
Dernière intervention
-
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Pour un script j'ai besoin de lister les groupes des utiliateurs de /etc/group
Mais je ne comprend pas pourquoi avec une fonction je ne peut pas y afficher verticalement ?
1/ Qand je fait ceci sans fonction
le résultat s'affiche verticalement un par un
2/ Qand je fait ceci avec une fonction
le résultat s'affiche horizontalement
Pour un script j'ai besoin de lister les groupes des utiliateurs de /etc/group
Mais je ne comprend pas pourquoi avec une fonction je ne peut pas y afficher verticalement ?
1/ Qand je fait ceci sans fonction
for i in 'cat /etc/group | fgrep x:50 | cut -d: -f1'
do
echo "$i"
done
le résultat s'affiche verticalement un par un
[root@localhost laurent]# bash /home/laurent/bash/Installer-un-partage-public-mutli-utilisateurs.sh nathalie laurent [root@localhost laurent]#
2/ Qand je fait ceci avec une fonction
groupe_users_vertical ()
{
for i in 'cat /etc/group | fgrep x:50 | cut -d: -f1'
do
echo "$i"
done
}
echo ""
echo $(groupe_users_vertical)
le résultat s'affiche horizontalement
[root@localhost laurent]# bash /home/laurent/bash/Installer-un-partage-public-mutli-utilisateurs.sh nathalie laurent [root@localhost laurent]#
2 réponses
-
Salut,
Pourquoi "echo" (echo $(groupe_users_vertical)) ???
groupe_users_vertical () { for i in 'cat /etc/group | fgrep x:50 | cut -d: -f1' do echo "$i" done } echo "" groupe_users_vertical
Et pourquoi une boucle for ?
groupe_users_vertical () { fgrep 'x:50' /etc/group | cut -d: -f1 } echo "" groupe_users_vertical -
Bonsoir,
echo c'est pour vérifier à l'affichage si tout est correct, sinon il va m'afficher erreur fichier non trouvé, mais je doit ajouter chaque utilisateur# adduser $(groupe_users_vertical) <chemin du partage reseau
Es-ce correct comme ceci pour ajouter chaque utilisateur
Merci-
Re-
echo c'est pour vérifier à l'affichage si tout est correct
echo affiche du texte ou le contenu d'une variable, mais on ne l'emploie pas pour afficher le résultat d'une commande ou d'une fonction, par défaut celles-ci affichent leur résultat sur la sortie standard en règle générale.
mais je doit ajouter chaque utilisateur
# adduser $(groupe_users_vertical) <chemin du partage reseau
Tu ne peux pas non plus ajouter tous tes utilisateurs en même temps avec la commande "adduser", tu dois le faire un par un, donc inutile de récupérer ta liste auparavant, ou bien si, à condition de parser chaque élément de cette liste un par un, mais là ça fait redondance, autant tout faire d'un coup.
Un truc du genre devrait le faire :
while read nom do adduser "${nom}" options done < $(fgrep 'x:50' /etc/group | cut -d: -f1)
A tester avant en rajoutant un "echo" devant la commande "adduser", hein ?
-