Bonjour,
comment récupérer l’uid et le gid de l’utilisateur à partir de son nom avec un script bash ?
voici comment se présente la ligne de l’utilisateur dans /etc/passwd:
Merci
Bonjour,
comment récupérer l’uid et le gid de l’utilisateur à partir de son nom avec un script bash ?
voici comment se présente la ligne de l’utilisateur dans /etc/passwd:
Merci
uid=`grep $USER /etc/passwd | awk -F: '{ print $3 }'
guid=`grep $USER /etc/passwd | awk -F: '{ print $4 }'
Il existe peut être mieux mais je ne connais pas et j’ai peut être inversé groupe et user.
[quote=“MisterFreez”]uid=`grep $USER /etc/passwd | awk -F: '{ print $3 }'
guid=`grep $USER /etc/passwd | awk -F: '{ print $4 }'
Il existe peut être mieux mais je ne connais pas et j’ai peut être inversé groupe et user.[/quote]
En tappant:
dans le shell il me met le prompt
Appramment elle n’est pas finie la commande ?
Mais j’ai testé ceci:
Mais il me retourne la valeur des chaînes comme ceci:
UID=1003
GID=1002
Alors qu’il me faudrait seulement l’UID avec une commande et le GID avec une autre.
J’ai testé ceci:
Et il me sort:
1003
:1002
Il faudrait qu’il me renvoi seulement ceci:
Un avis ?
[quote=“dexmon”]En tappant:
dans le shell il me met le prompt
[/quote]
Caractéristique d’un ’ oublié
Arrf
Merci ça semble marcher
Que signifie print $3 et print $4 ??
en particulier le $3 et le $4 ?
définie le caractère séparateur, ici : (par défaut c'est espace)
awk va prendre chaque ligne qui lui viens (soit indiqué en paramètre soit son entrée standard) et pour chaque ligne va la coupé selon le ractère séparateur choisie. Chaque morceau de ligne est attribué à une variable [u]interne à awk[/u] (rien à voir avec les variables du shell).
[code]coluche:x:1003:1002:,,,:/home/coluche:/bin/bash[/code]
deviendras
coluche -> $1
x -> $2
1003 -> $3
1002 -> $4
,,, -> $5
/home/coluche -> $6
/bin/bash -> $7
On peut se débrouiller avec sed mais c'est plus chiant.
awk est un langage de script de flux assez puissant mais je ne me sert que de l'instruction print.
définie le caractère séparateur, ici : (par défaut c’est espace)
awk va prendre chaque ligne qui lui viens (soit indiqué en paramètre soit son entrée standard) et pour chaque ligne va la coupé selon le ractère séparateur choisie. Chaque morceau de ligne est attribué à une variable interne à awk (rien à voir avec les variables du shell).
deviendras
coluche -> $1
x -> $2
1003 -> $3
1002 -> $4
, -> $5
/home/coluche -> $6
/bin/bash -> $7
On peut se débrouiller avec sed mais c’est plus chiant.
awk est un langage de script de flux assez puissant mais je ne me sert que de l’instruction print.
Si j’ai bien compris, avec awk il suffit juste de savoir compter jusqu’à la chaîne qui nous intéresse.
Merci pour ton explication je comprend mieux.
Mais pour le caractère séparateur j’ai pas encore saisi:
Le -F: (le caractère séparateur dans notre cas, c’est les deux points non ?)
Résolu
[quote=“dexmon”]Mais pour le caractère séparateur j’ai pas encore saisi:
Le -F: (le caractère séparateur dans notre cas, c’est les deux points non ?)[/quote]
Exact si tu avais un csv avec comme séparateur ; tu aurais mis -F;