# Problème avec un simple script Bash

**URL:** <https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 2:17 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327 "2016-02-21T02:17:52Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![marvil](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/ac91a4/32.png) [@marvil](https://www.debian-fr.org/u/marvil)\
**Post date:** [Février 21, 2016, 2:17 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/1 "2016-02-21T02:17:52Z")

</div>

Bonjour,

Mon programme consiste a créer un répertoire avec comme nom la date du jour.  
Rien de plus simple me dirai vous …

```auto
#!/bin/sh
date= &(date '+%d%m%Y')
mkdir "$date"
```

Voici ce que j’obtient

```auto
19052011
mkdir: impossible de crÃ©er le rÃ©pertoire Â«Â Â Â»: Aucun fichier ou dossier de ce type
```

Je ne comprend pas ![:078](https://www.debian-fr.org/uploads/default/original/1X/35495b94246acfe4db2e12dab949642c59f41118.gif "gerbe")

Merci d’avance pour votre aide.

---

<div class="post-metadata">

**Author:** ![mike57140](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/c67d28/32.png) [@mike57140](https://www.debian-fr.org/u/mike57140)\
**Post date:** [Février 21, 2016, 2:17 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/2 "2016-02-21T02:17:52Z")

</div>

ça ressemble à un problème d’encodage … peut-être à cause de l’interpréteur sh. Aussi, je conseil d’éviter ta variable nommée “date” car un script shell s’appel comme ceci déjà.

sinon, voilà comment je procède :

```auto
#!/bin/bash

ZEDATE=`/bin/date +%Y-%m-%d_%H-%M-%S`

mkdir -p ${ZEDATE}
```

si ça peut t’aider …

---

<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:17 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/3 "2016-02-21T02:17:52Z")

</div>

Bonjour,`#!/bin/sh
mkdir $(date '+%d%m%Y')`devrait fonctionner.

---

<div class="post-metadata">

**Author:** ![M3t4linux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@M3t4linux](https://www.debian-fr.org/u/M3t4linux)\
**Post date:** [Février 21, 2016, 2:17 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/4 "2016-02-21T02:17:52Z")

</div>

On ne peut donc pas faire un mkdir sur une fonction ou une variable??

---

<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 21, 2016, 2:17 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/5 "2016-02-21T02:17:53Z")

</div>

> [@M3t4linux](#):
>
> On ne peut donc pas faire un mkdir sur une fonction ou une variable??

Sur une fonction non (pas de valeur de retour dans les fonctions shell.  
Sur une variable sans problème.

Je ne connais pas la notation &(), ça fait quoi ? (le premier qui tente un RTFM…)

---

<div class="post-metadata">

**Author:** ![limax](https://www.debian-fr.org/user_avatar/www.debian-fr.org/limax/32/3886_2.png) [@limax](https://www.debian-fr.org/u/limax)\
**Post date:** [Février 21, 2016, 2:17 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/6 "2016-02-21T02:17:54Z")

</div>

edit: je tourne 7 fois la langue dans ma bouche et je reposte

---

<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:17 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/7 "2016-02-21T02:17:58Z")

</div>

Ce fil est marqué comme “résolu” ???  
par qui ?  
où est la solution ?

---

<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 21, 2016, 2:18 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/8 "2016-02-21T02:18:05Z")

</div>

C’est pas moi que je sache.

---

<div class="post-metadata">

**Author:** ![M3t4linux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@M3t4linux](https://www.debian-fr.org/u/M3t4linux)\
**Post date:** [Février 21, 2016, 2:18 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/9 "2016-02-21T02:18:06Z")

</div>

La solution de mike peut être??

---

<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:18 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/10 "2016-02-21T02:18:08Z")

</div>

J’aimerais bien quand même que les membres qui ont réponse à leur question, non seulement marquent le sujet comme étant résolu, ce qui est fait, mais aussi explique le “comment”.  
Éventuellement, si la résolution est due à la réponse d’un autre membre, un remerciement n’est ptet pas superflu 😕

---

<div class="post-metadata">

**Author:** ![mike57140](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/c67d28/32.png) [@mike57140](https://www.debian-fr.org/u/mike57140)\
**Post date:** [Février 21, 2016, 2:18 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/11 "2016-02-21T02:18:08Z")

</div>

Je ne sais pas, mais c’est pas moi qui ai marqué le fil comme résolu.

---

<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:21 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/12 "2016-02-21T02:21:24Z")

</div>

[quote=«&nbsp;MisterFreez&nbsp;»]  
Sur une fonction non (pas de valeur de retour dans les fonctions shell.  
[…] (le premier qui tente un RTFM…)[/quote]  
 ![:eusa-naughty:](https://www.debian-fr.org/uploads/default/original/1X/a8041fe32d5c63bbc6616e748e6b50af85839764.gif "Naughty")

RTFM ! ![:text-lol:](https://www.debian-fr.org/uploads/default/original/1X/b2184063fbfabc8ff0d84e9ee0b1715c7dfbeb5b.gif "Lol!")

```auto
#!/bin/sh
function random
{ echo ${RANDOM}; }

for i in *
do
printf "%i : %s\n" "$(random)" "${i}"
done
```

![:eusa-whistle:](https://www.debian-fr.org/uploads/default/original/1X/899b2c331f8cc02517f77948602974610a95f952.gif "Whistle")

---

<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 21, 2016, 2:21 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/13 "2016-02-21T02:21:25Z")

</div>

On appelle pas ça une valeur de retour. Ca c’est juste la seule manière de faire, mais ça reste moche parce que tu utilise la sortie standard. Ta fonction qui a une valeur de retour ne peux pas imprimer des choses dans le shell, tu crée un sous-shell juste pour ça,…

Non je n’appelle pas ça avoir une valeur de retour !

---

<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:21 UTC](https://www.debian-fr.org/t/probleme-avec-un-simple-script-bash/32327/14 "2016-02-21T02:21:26Z")

</div>

> [@MisterFreez](#):
>
> […]Ta fonction qui a une valeur de retour ne peux pas imprimer des choses dans le shell, […]

![:naughty:](https://www.debian-fr.org/uploads/default/original/1X/a8041fe32d5c63bbc6616e748e6b50af85839764.gif "Naughty")

```auto
#!/bin/sh
function random
{ echo ${RANDOM}; echo "sortie standard" >&3; }

for i in *
do
{ printf "%i : %s\n" "$(random)" "${i}"; } 3>&1
done
```

![:whistle:](https://www.debian-fr.org/uploads/default/original/1X/899b2c331f8cc02517f77948602974610a95f952.gif "Whistle")

si tu veux vraiment «&nbsp;une valeur de retour&nbsp;», toutes les fonctions en ont une … ça s’appelle le statut ! Mais ce n’est qu’un entier donc tu ne peux pas aller bien loin avec 😉
