# Bash redirection simple d'un résultat dans un fichier

**URL:** <https://www.debian-fr.org/t/bash-redirection-simple-dun-resultat-dans-un-fichier/26194>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 10:04 UTC](https://www.debian-fr.org/t/bash-redirection-simple-dun-resultat-dans-un-fichier/26194 "2016-02-20T22:04:53Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![1337](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/1/6a8cbe/32.png) [@1337](https://www.debian-fr.org/u/1337)\
**Post date:** [Février 20, 2016, 10:04 UTC](https://www.debian-fr.org/t/bash-redirection-simple-dun-resultat-dans-un-fichier/26194/1 "2016-02-20T22:04:53Z")

</div>

bonjour, je bloque sur un truck vraiment simple, je voudrais rediriger un résultat dans un fichier voila une example:

echo -n "Merci de m’indiquer quel map tu veux mettre par defaut "  
read defaut  
echo “$defaut” \> map

le problème ici c’est que le résultat de $defaut n’est pas rediriger dans le fichier map et je ne comprend pas pourquoi.

sa doit être un truck tout con mais je trouve pas.

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 10:04 UTC](https://www.debian-fr.org/t/bash-redirection-simple-dun-resultat-dans-un-fichier/26194/2 "2016-02-20T22:04:53Z")

</div>

Ça marche pourtant, as tu les droits d’écriture sur map?

---

<div class="post-metadata">

**Author:** ![1337](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/1/6a8cbe/32.png) [@1337](https://www.debian-fr.org/u/1337)\
**Post date:** [Février 20, 2016, 10:04 UTC](https://www.debian-fr.org/t/bash-redirection-simple-dun-resultat-dans-un-fichier/26194/3 "2016-02-20T22:04:54Z")

</div>

oui j’ai tous les droit mais je ne comprend pas pourquoi la redirection ne se fait pas je te copie tous mon code peut être que tu comprendra

`#!/bin/sh
clear
cd serv1
ps x | grep serveur1 | cut -d " " -f 1 | xargs kill -9
map=dm_steamlab
echo "la map par defaut et: $map si sa te convient appuis sur la touche entree"
echo "sinon si tu veut changer donne moi une autre map"
echo -n "quel map? "
read map
if ["$map" = ""]; then
        map=dm_steamlab
        player=2
        echo "combien de joueurs?"
        read player
        screen -dmS serveur1 ./srcds_run -game hl2mp +ip 188.165.199.48 -port 27015 +maxplayers $player +map $map -tickrate 100 -autoupdate
                elif ["$map" != "defaut"]; then
                        echo "combien de joueurs?"
                                read player
                                screen -dmS serveur1 ./srcds_run -game hl2mp +ip 188.165.199.48 -port 27015 +maxplayers $player +map $map -tickrate 100 -aut$
elif ["$map" == "defaut"]; then
echo "CONFIGUATION PAR DEFAUT ACTIVER"
echo -n "Merci de m'indiquer quel map tu veux mettre par defaut "
read defaut
echo "$defaut" > map
echo "la map paramétrer par defaut et maintenant $defaut"
fi
`

c’est bête de bloquer sur un truck aussi simple

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 20, 2016, 10:04 UTC](https://www.debian-fr.org/t/bash-redirection-simple-dun-resultat-dans-un-fichier/26194/4 "2016-02-20T22:04:54Z")

</div>

La redirection \> c’est pour écrire quelque chose dans un fichier (vérifie, tu devrais avoir un fichier “map” contenant la valeur). Mais c’est bien beau d’écrire dans un fichier si tu ne le lis jamais… 😉

J’imagine (vu le peu d’explications) que le problème vient plutôt de l’initialisation de ta variable au début du script, qui devrait plutôt être du genre :

`map=$(if [-r map]; then
        cat map
      else
        echo "dm_steamlab"
      fi
     )`  
Et aussi, essaye d’utiliser des chemins complets, ça évitera de disperser tes fichiers aux quatre coins du disque dur en fonction d’où tu appelles le script (le cd serv1 ne fonctionnera pas si tu appelles le script à partir du mauvais répertoire). En assumant que ton script se trouve dans le répertoire contenant le sous-répertoire serv1 :

```auto

```

---

<div class="post-metadata">

**Author:** ![1337](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/1/6a8cbe/32.png) [@1337](https://www.debian-fr.org/u/1337)\
**Post date:** [Février 20, 2016, 10:04 UTC](https://www.debian-fr.org/t/bash-redirection-simple-dun-resultat-dans-un-fichier/26194/5 "2016-02-20T22:04:55Z")

</div>

enfaite j’ai pas fini la prog pour sa que je ne l’utilise pas as tu une idée pour que la redirection fonctionne ?

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 20, 2016, 10:04 UTC](https://www.debian-fr.org/t/bash-redirection-simple-dun-resultat-dans-un-fichier/26194/6 "2016-02-20T22:04:55Z")

</div>

Ben le souci c’est que pris tel quel, ça fonctionne :

`$ echo -n "Valeur ? " && read defaut && echo "$defaut" > map && cat map
Valeur ? ESSAI
ESSAI`

Donc soit tu as des problèmes de permissions, soit le fichier “map” est écrit ailleurs que là où tu l’attends à cause du répertoire courant quand tu appelles le script. D’où l’intérêt de faire un cd vers un répertoire connu.  
Pour t’en convaincre, au lieu de faire echo “$defaut” \> map remplace map par un chemin absolu (par exemple /tmp/essai\_map) tu verras que le fichier est bien créé.

---

<div class="post-metadata">

**Author:** ![1337](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/1/6a8cbe/32.png) [@1337](https://www.debian-fr.org/u/1337)\
**Post date:** [Février 20, 2016, 10:04 UTC](https://www.debian-fr.org/t/bash-redirection-simple-dun-resultat-dans-un-fichier/26194/7 "2016-02-20T22:04:55Z")

</div>

c’est bon j’ai trouver merci quand même 😉

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 20, 2016, 10:04 UTC](https://www.debian-fr.org/t/bash-redirection-simple-dun-resultat-dans-un-fichier/26194/8 "2016-02-20T22:04:56Z")

</div>

Dans ce cas ça serait sympa d’expliquer, pour que d’autres qui auraient le même type de souci puissent savoir comment faire. 🙂

---

<div class="post-metadata">

**Author:** ![1337](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/1/6a8cbe/32.png) [@1337](https://www.debian-fr.org/u/1337)\
**Post date:** [Février 20, 2016, 10:04 UTC](https://www.debian-fr.org/t/bash-redirection-simple-dun-resultat-dans-un-fichier/26194/9 "2016-02-20T22:04:56Z")

</div>

c’est tout bête j’ai honte enfaite j’avais mis cd serv1/ donc sa allait dans serv1 -\_- l’erreur et humaine :s
