Script bash

salut à tous !

voila je n’ai jamais rien scripté de ma vie, et il faut que je commence. et j’ai l’impression que ce que je cherche à faire est compliqué.

je cherche à tester si l’utilisateur toto existe.
S’il existe alors, il faut faire un "usermod -u 444 -g 4 --shell /bin/bash toto"
s’il n’existe pas alors il faut faire “useradd -m -u 444 -g 4 --shell /bin/bash toto”

je me doute pour qui fait des script tout le temps ya rien de compliqué, mais pour le néophyte que je suis ca semble bien compliqué,

comptant sur votre aide !
vincent

salut

if [ $(whoami) = "toto" ]
then
  fait quelque chose
else
  ou encore quelque chose"
  exit 0
fi

voila à toi de placer les commandes

a+

[quote=“gilles974”]salut

if [ $(whoami) = "toto" ]
(...)
fi

voila à toi de placer les commandes

a+[/quote]

Sauf que Keneichi demande si toto existe, pas s’il est connecté.

Je ferais plutôt : cut -d: -f1 < /etc/passwd |grep toto && usermod -u 444 -g 4 --shell /bin/bash toto || useradd -m -u 444 -g 4 --shell /bin/bash toto
La ligne à l’air longue mais est simple :
cut et grep font partie des utilitaires de bases du système,
si tu veux apprendre à scripter tu ne pourras pas les contourner.
le fichier /etc/passwd ( qui contient la liste des utilisateurs ) est envoyé en entrée ( avec < ) à la commande cut avec : comme délimiteur,
-f1 n’affiche que le premier champ ( le nom des utilisateurs ), la sortie est pipée dans grep par | et toto ( l’argument de grep est recherché )
si il est trouvé le shell passe de l’autre coté du && (et) sinon il passe de l’autre coté du || (ou).

tu as tout à fait raison

autant pour moi j’ai mal lu arrrggg :013

en effet je crois que la solution proposé en second convient beaucoup mieux.

je la teste de suite et je vous dit quoi.

merci !

Ce fil relève plutôt de “programmation”, où je déplace.

la solution fonctionne impeccablement !
elle correspond tt à fait à ce que je voulais faire !
merci encore
(et désolé ricardo d’avoir posté au mauvais endroit!)

Aucun problème :006
Si tu considères que tu as obtenu une réponse qui te convient, clique sur la coche verte pour marquer le fil comme étant “résolu”.

Bonjour,

La commande id permet de le faire simplement :

unUser="toto"
id ${unUser} >&/dev/null && echo "L'utilisateur ${unUser} existe." || echo "L'utilisateur ${unUser} n'existe pas."

Tu as raison, merci d’avoir partagé.