# Script bash

**URL:** <https://www.debian-fr.org/t/script-bash/32934>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 2:37 UTC](https://www.debian-fr.org/t/script-bash/32934 "2016-02-21T02:37:32Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![keneichi](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/b4bc9f/32.png) [@keneichi](https://www.debian-fr.org/u/keneichi)\
**Post date:** [Février 21, 2016, 2:37 UTC](https://www.debian-fr.org/t/script-bash/32934/1 "2016-02-21T02:37:32Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![gilles974](https://www.debian-fr.org/user_avatar/www.debian-fr.org/gilles974/32/3998_2.png) [@gilles974](https://www.debian-fr.org/u/gilles974)\
**Post date:** [Février 21, 2016, 2:37 UTC](https://www.debian-fr.org/t/script-bash/32934/2 "2016-02-21T02:37:32Z")

</div>

salut

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

voila à toi de placer les commandes

a+

---

<div class="post-metadata">

**Author:** ![eol](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/b782af/32.png) [@eol](https://www.debian-fr.org/u/eol)\
**Post date:** [Février 21, 2016, 2:37 UTC](https://www.debian-fr.org/t/script-bash/32934/3 "2016-02-21T02:37:32Z")

</div>

[quote=“gilles974”]salut

```auto
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).

---

<div class="post-metadata">

**Author:** ![gilles974](https://www.debian-fr.org/user_avatar/www.debian-fr.org/gilles974/32/3998_2.png) [@gilles974](https://www.debian-fr.org/u/gilles974)\
**Post date:** [Février 21, 2016, 2:37 UTC](https://www.debian-fr.org/t/script-bash/32934/4 "2016-02-21T02:37:32Z")

</div>

tu as tout à fait raison

autant pour moi j’ai mal lu arrrggg ![:013](https://www.debian-fr.org/uploads/default/original/1X/086709e9e4d48f0fa24e42243bbce857fc2be47f.gif "colere")

---

<div class="post-metadata">

**Author:** ![keneichi](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/b4bc9f/32.png) [@keneichi](https://www.debian-fr.org/u/keneichi)\
**Post date:** [Février 21, 2016, 2:37 UTC](https://www.debian-fr.org/t/script-bash/32934/5 "2016-02-21T02:37:32Z")

</div>

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

je la teste de suite et je vous dit quoi.

merci !

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 2:37 UTC](https://www.debian-fr.org/t/script-bash/32934/6 "2016-02-21T02:37:32Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![keneichi](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/b4bc9f/32.png) [@keneichi](https://www.debian-fr.org/u/keneichi)\
**Post date:** [Février 21, 2016, 2:37 UTC](https://www.debian-fr.org/t/script-bash/32934/7 "2016-02-21T02:37:32Z")

</div>

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!)

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 2:37 UTC](https://www.debian-fr.org/t/script-bash/32934/8 "2016-02-21T02:37:33Z")

</div>

Aucun problème ![:006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif "salut")  
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 «&nbsp;résolu&nbsp;».

---

<div class="post-metadata">

**Author:** ![Totor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@Totor](https://www.debian-fr.org/u/Totor)\
**Post date:** [Février 21, 2016, 2:38 UTC](https://www.debian-fr.org/t/script-bash/32934/9 "2016-02-21T02:38:28Z")

</div>

Bonjour,

La commande id permet de le faire simplement :

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

---

<div class="post-metadata">

**Author:** ![eol](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/b782af/32.png) [@eol](https://www.debian-fr.org/u/eol)\
**Post date:** [Février 21, 2016, 2:38 UTC](https://www.debian-fr.org/t/script-bash/32934/10 "2016-02-21T02:38:29Z")

</div>

> [@Totor](#):
>
> La commande id permet de le faire simplement

Tu as raison, merci d’avoir partagé.
