# Définir une variable selon utilisateur script Shell

**URL:** <https://www.debian-fr.org/t/definir-une-variable-selon-utilisateur-script-shell/14518>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 5:47 UTC](https://www.debian-fr.org/t/definir-une-variable-selon-utilisateur-script-shell/14518 "2016-02-20T17:47:48Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![pcsystemd](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pcsystemd/32/5182_2.png) [@pcsystemd](https://www.debian-fr.org/u/pcsystemd)\
**Post date:** [Février 20, 2016, 5:47 UTC](https://www.debian-fr.org/t/definir-une-variable-selon-utilisateur-script-shell/14518/1 "2016-02-20T17:47:48Z")

</div>

Bonjour,

je me lance dans un script BASH et je souhaiterais savoir comment définir la valeur d’une variable selon l’utilisateur .Je m’explique

j’ai plusieurs utilisateurs :

toto  
tata  
titi

chaque utilisateur a un repertoire du sytle

majtoto  
majtata  
majtiti

j’ai ma variable

REPMAJ

Je souhaiterais pouvoir définir la valeur de cette variable selon l’utilisateur pour que les fichiers se copient dans le bon dossier.

Avez vous une piste?

Merci

---

<div class="post-metadata">

**Author:** ![themorice](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c89c15/32.png) [@themorice](https://www.debian-fr.org/u/themorice)\
**Post date:** [Février 20, 2016, 5:47 UTC](https://www.debian-fr.org/t/definir-une-variable-selon-utilisateur-script-shell/14518/2 "2016-02-20T17:47:49Z")

</div>

C’est selon l’utilisateur qui lance le script ?

Si c’est le cas, tu peux récupèrer le résultat de whoami

---

<div class="post-metadata">

**Author:** ![pcsystemd](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pcsystemd/32/5182_2.png) [@pcsystemd](https://www.debian-fr.org/u/pcsystemd)\
**Post date:** [Février 20, 2016, 5:47 UTC](https://www.debian-fr.org/t/definir-une-variable-selon-utilisateur-script-shell/14518/3 "2016-02-20T17:47:49Z")

</div>

Merci themorice,

mais ce n’est pas selon l’utilisateur puisque tous mes scripts ne se lancent que sous un seul utilisateur, c’est plutôt selon le répertoire qui lui est assigné.

Effectivement dans le début de mon script j’ai défini mon utilisateur et son répertoire comme suit

[code]if [“${USER}” == “toto”]  
then

```
mkdir -p ${TMPDIR}
HOMEUSER="/home/toto"
REPMAJ="MaJToto"

```

exit 0

else if [“${USER}” == “tata”]  
then

```
mkdir -p ${TMPDIR}
HOMEUSER="/home/tata"
REPMAJ="MaJTata"

```

exit 0

else if [“${USER}” == “titi”]  
then

```
mkdir -p ${TMPDIR}
HOMEUSER="/home/titi"
REPMAJ="MaJTiti"

```

exit 0[/code]

Merci

---

<div class="post-metadata">

**Author:** ![Ludo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ludo/32/3426_2.png) [@Ludo](https://www.debian-fr.org/u/Ludo)\
**Post date:** [Février 20, 2016, 5:47 UTC](https://www.debian-fr.org/t/definir-une-variable-selon-utilisateur-script-shell/14518/4 "2016-02-20T17:47:50Z")

</div>

Si comme le demande “themorice” le script est lancé par l’utilisateur.

```auto

REPMAJ=/ton/path
USER=/usr/bin/whoami

mkdir $REPMAJ/$USER

```

Par contre si c’est pour une liste d’utilisateurs. Tu peut faire un grep sur le fichier passwd et avec un “for” cropier le répertoire pour un chaque utilisateur.

```auto
REPMAJ=/ton/path
USER=$(cat /etc/passwd | cut -d: -f1 | grep ^t)

for u in $USER; do mkdir $REPMAJ/$u; done
```

J’ai fait un grep ^t pour tous les utilisateurs qui commence avec la lettre t

---

<div class="post-metadata">

**Author:** ![pcsystemd](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pcsystemd/32/5182_2.png) [@pcsystemd](https://www.debian-fr.org/u/pcsystemd)\
**Post date:** [Février 20, 2016, 5:48 UTC](https://www.debian-fr.org/t/definir-une-variable-selon-utilisateur-script-shell/14518/5 "2016-02-20T17:48:05Z")

</div>

Merci . Je vais étudié toutes ces infos et je vous tiens au courant.

---

<div class="post-metadata">

**Author:** ![kna](https://www.debian-fr.org/user_avatar/www.debian-fr.org/kna/32/5623_2.png) [@kna](https://www.debian-fr.org/u/kna)\
**Post date:** [Février 20, 2016, 6:06 UTC](https://www.debian-fr.org/t/definir-une-variable-selon-utilisateur-script-shell/14518/6 "2016-02-20T18:06:28Z")

</div>

> [@](#):
>
> if [“${USER}” == “toto”]

Tu n’as pas besoin de deux “=” en bash. En C oui…

---

<div class="post-metadata">

**Author:** ![michealjackson](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/d26b3c/32.png) [@michealjackson](https://www.debian-fr.org/u/michealjackson)\
**Post date:** [Février 20, 2016, 8:33 UTC](https://www.debian-fr.org/t/definir-une-variable-selon-utilisateur-script-shell/14518/7 "2016-02-20T20:33:41Z")

</div>

Merci pour le partage. Il est grand

[plan solution commission de surendettement](http://dossierdesurendettement.org/) - commission de surendettement, vous pouvez demander un dossier de surendettement.[plan solution commission de surendettement](http://dossierdesurendettement.org/)

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 8:33 UTC](https://www.debian-fr.org/t/definir-une-variable-selon-utilisateur-script-shell/14518/8 "2016-02-20T20:33:43Z")

</div>

@Ludo \> [code]REPMAJ=/ton/path  
USER=$(cat /etc/passwd | cut -d: -f1 | grep ^t)

for u in $USER; do mkdir $REPMAJ/$u; done  
[/code]

J’aurais juste deux remarques :  
[ul]  
[li]cat c’est le mal.[/li]  
[li]USER est déjà définis même pour root donc vaut mieux pas sur charger même si on ne fait pas un export.[/li][/ul]
