# Bash : une ligne pour rediriger l'entrée et la sortie vers un fichier

**URL:** <https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487>\
**Category:** Programmation\
**Created:** [Avril 29, 2021, 1:38 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487 "2021-04-29T01:38:49Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon30990328](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@anon30990328](https://www.debian-fr.org/u/anon30990328)\
**Post date:** [Avril 29, 2021, 1:38 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/1 "2021-04-29T01:38:49Z")

</div>

Bonjour, bonsoir.  
Il y a 20 que j’ai posé le problème à mon administrateur.  
J’ai oublié depuis.  
Je cherche une commande pour rediriger l’entrée (les commandes) et la sortie (les résultats des commande) vers un fichier.  
Je sais que c’est une commande contenant un script, un ou 2 pipe et un tee.

Merci pour celui qui connais la question et la réponse.  
Bravo à ceux qui vont chercher et peut-être trouver.

---

<div class="post-metadata">

**Author:** ![PmGs](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/dfb087/32.png) [@PmGs](https://www.debian-fr.org/u/PmGs)\
**Post date:** [Avril 29, 2021, 5:47 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/2 "2021-04-29T05:47:52Z")

</div>

> **[Redirections (Bash Reference Manual)](https://www.gnu.org/software/bash/manual/html_node/Redirections.html)**

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Avril 29, 2021, 6:01 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/3 "2021-04-29T06:01:38Z")

</div>

Genre ça ?

```auto
ma_commande_shell | tee -a mon_fichier_de_log

```

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Avril 29, 2021, 7:26 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/4 "2021-04-29T07:26:39Z")

</div>

Ou sinon, pour enregistrer tout ce qu’affiche ton shell, tu peux utiliser [script](https://linux.die.net/man/1/script)

---

<div class="post-metadata">

**Author:** ![jcsm33](https://www.debian-fr.org/user_avatar/www.debian-fr.org/jcsm33/32/3832_2.png) [@jcsm33](https://www.debian-fr.org/u/jcsm33)\
**Post date:** [Avril 29, 2021, 8:11 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/5 "2021-04-29T08:11:25Z")

</div>

Je crois qu’elle s’appelle godzilla mais je ne sais plus dans quel paquet.

---

<div class="post-metadata">

**Author:** ![anon30990328](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@anon30990328](https://www.debian-fr.org/u/anon30990328)\
**Post date:** [Avril 29, 2021, 8:20 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/6 "2021-04-29T08:20:50Z")

</div>

Merci beaucoup pour ce lien.

> [@PmGs](#):
>
> [gnu.org](https://www.gnu.org/software/bash/manual/html_node/Redirections.html)
> 
> ### [Redirections (Bash Reference Manual)](https://www.gnu.org/software/bash/manual/html_node/Redirections.html)

Merci beaucoup pour ce lien.

> [@Clochette](#):
>
> Genre ça ?
> 
> ```auto
> ma_commande_shell | tee -a mon_fichier_de_log
> 
> ```

Là, j’aurais pas la commande en question

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Avril 29, 2021, 6:29 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/7 "2021-04-29T18:29:23Z")

</div>

> [@anon30990328](#):
>
> Là, j’aurais pas la commande en question

Si tu remplace ma\_commande\_shell par ta commande pour lancer le script avec tes commandes ça ne marche pas ?

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Avril 29, 2021, 10:11 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/8 "2021-04-29T22:11:44Z")

</div>

et le 2\>&1 ?

---

<div class="post-metadata">

**Author:** ![anon30990328](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@anon30990328](https://www.debian-fr.org/u/anon30990328)\
**Post date:** [Avril 30, 2021, 5:41 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/9 "2021-04-30T05:41:10Z")

</div>

J’ai indiqué les élément constituant de la ligne de commande à trouver.

Une redirection ne suffit pas.

---

<div class="post-metadata">

**Author:** ![tfc](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tfc/32/6424_2.png) [@tfc](https://www.debian-fr.org/u/tfc)\
**Post date:** [Mai 1, 2021, 4:15 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/10 "2021-05-01T16:15:25Z")

</div>

Salut à tous,

Tamie, je ne sais pas si tu as résolu ton problème, en attendant, sauf si je n’ai pas bien saisi la demande, voici une proposition de ma part.  
Faire appel à `read` en attribuant l’entrée saisie à une variable (ent):

```
#!bin/bash

echo 'Saisir la commande:'
read ent
echo
echo "L'entrée est : $ent"
echo "La sortie est : "
$ent
exit

```

Je ne sais pas si mon script est très académique\* (n’hésitez à me le dire, voir à le corriger) mais il semble fonctionner.

\*: Si je m’interroge c’est pour ça:  
Si je fais dans un terminal un

```
> read a

```

puis, je saisi par exemple `ls -la` (une commande qui comporte des espaces),  
alors

```
> $a

```

me renvoie dans les cordes alors que le script lui fonctionne.

Éclairez moi sious-plait.

---

<div class="post-metadata">

**Author:** ![anon30990328](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@anon30990328](https://www.debian-fr.org/u/anon30990328)\
**Post date:** [Mai 1, 2021, 5:01 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/11 "2021-05-01T17:01:21Z")

</div>

Ok, non, ça répondra pas parce que c’est pas un script que je cherche.

C’est une ligne de commande dont j’ai donné les élément et effctivement il y a une redirection dans la ligne de commande.

---

<div class="post-metadata">

**Author:** ![tfc](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tfc/32/6424_2.png) [@tfc](https://www.debian-fr.org/u/tfc)\
**Post date:** [Mai 1, 2021, 5:36 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/12 "2021-05-01T17:36:36Z")

</div>

Ok, il va sans dire qu’il faut compléter le script avec des redirections face aux informations que l’on veut récupérer, comme ceci par exemple (j’imagine que c’est ce que tu veux faire, les insérer dans une doc):

```
 #!/bin/bash

echo 'Saisir la commande:'
read ent
echo
echo "La commande : $ent" >> memo.txt
echo "donne : " >> memo.txt
$ent >> memo.txt
echo >> memo.txt

exit

```

Ceci dit, si tu retrouves cette commande, ça m’intéresse. On voit ici la difficulté de récupérer l’entrée. J’étais moi aussi tenté d’utiliser `tee`, mais je ne vois pas comment (la solution proposée par Clochette ne récupère que la sortie dans le fichier).

J’ai cherché une solution à ton problème essentiellement [là](https://fr.wikibooks.org/wiki/Programmation_Bash/Flux_et_redirections) et [là](https://www.quennec.fr/search/node/redirection), sans succès.  
Le man de bash donné par PmGs [en français](https://www.linuxcertif.com/man/1/bash/) c’est sympa aussi (ça ne remplace évidement pas la version originale).

Edit: pour ceux et celles qui aurait vu mon message avant correction, j’ai juste viré quelques considérations personnelles dont on se fout royalement :). Si ce n’est que mon expertise dans le domaine n’est pas assuré, ça c’est important.

---

<div class="post-metadata">

**Author:** ![anon30990328](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@anon30990328](https://www.debian-fr.org/u/anon30990328)\
**Post date:** [Mai 1, 2021, 6:46 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/13 "2021-05-01T18:46:41Z")

</div>

C’est ce que j’ai trouvé de mieux :  
`bash -c "script -q /dev/null" | tee log.txt`

---

<div class="post-metadata">

**Author:** ![tfc](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tfc/32/6424_2.png) [@tfc](https://www.debian-fr.org/u/tfc)\
**Post date:** [Mai 1, 2021, 6:54 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/14 "2021-05-01T18:54:38Z")

</div>

> [@anon30990328](#):
>
> bash -c «&nbsp;script -q /dev/null&nbsp;» | tee log.txt

le fichier log.txt est vide. «&nbsp;script&nbsp;» c’est un script ou la commande donnée par Sputnik93?

---

<div class="post-metadata">

**Author:** ![anon30990328](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@anon30990328](https://www.debian-fr.org/u/anon30990328)\
**Post date:** [Mai 1, 2021, 6:55 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/15 "2021-05-01T18:55:30Z")

</div>

C’est moi qui est donné la commande.  
Effectivement script est un utilitaire GNU

---

<div class="post-metadata">

**Author:** ![tfc](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tfc/32/6424_2.png) [@tfc](https://www.debian-fr.org/u/tfc)\
**Post date:** [Mai 1, 2021, 7:04 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/16 "2021-05-01T19:04:00Z")

</div>

> [@](#):
>
> C’est moi qui est donné la commande.

Bah non c’est Sputnik93 qui à donné la commande 😉

> [@Sputnik93](#):
>
> Ou sinon, pour enregistrer tout ce qu’affiche ton shell, tu peux utiliser [script](https://linux.die.net/man/1/script)

Du coup j’ai un peu de mal à comprendre, faut-il oui ou non faire appel à un script (voir ton premier message)?

Si oui, ma commande finalement est plus simple (mode «&nbsp;gros malin&nbsp;») 😉 :

```
./LeScriptDeTfc.sh

```

note: mon script peut aussi être écrit sous forme d’une seule commande avec des && et &… 😉

**C’est étonnant quand même qu’il n’y est pas une réponse simple et rapide pour récupérer cette entrée.**

---

<div class="post-metadata">

**Author:** ![anon30990328](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@anon30990328](https://www.debian-fr.org/u/anon30990328)\
**Post date:** [Mai 1, 2021, 7:29 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/17 "2021-05-01T19:29:26Z")

</div>

oui, premier message 5me ligne.  
Merci pour vos recherches.

---

<div class="post-metadata">

**Author:** ![anon30990328](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@anon30990328](https://www.debian-fr.org/u/anon30990328)\
**Post date:** [Mai 1, 2021, 7:33 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/18 "2021-05-01T19:33:31Z")

</div>

> [@tfc](#):
>
> le fichier log.txt est vide. « script » c’est un script ou la commande donnée par Sputnik93?

Verifiez !

```
lord@Tamie:~$ cat > log.txt 
lord@Tamie:~$ bash -c "script -q /dev/null" | tee log.txt
lord@Tamie:~$ echo Hello World!
Hello World!
lord@Tamie:~$ exit
lord@Tamie:~$ cat log.txt 
lord@Tamie:~$ echo Hello World!
Hello World!
lord@Tamie:~$ exit
lord@Tamie:~$

```

---

<div class="post-metadata">

**Author:** ![tfc](https://www.debian-fr.org/user_avatar/www.debian-fr.org/tfc/32/6424_2.png) [@tfc](https://www.debian-fr.org/u/tfc)\
**Post date:** [Mai 1, 2021, 8:04 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/19 "2021-05-01T20:04:10Z")

</div>

Petite aparté, si mon tutoiement te gène, n’hésite pas à me le dire.

J’ai vérifié, mais ( n’oublie pas mon coté «&nbsp;débutant&nbsp;»), en lançant bêtement (c’est pas bien je sais) ta commande suivit d’un `cat log.txt`.  
Maintenant, en suivant la procédure que tu me donne à savoir:

```auto
bash -c "script -q /dev/null" | tee log.txt

```

puis  
echo toto  
puis  
exit  
puis

```
cat log.txt

```

Aie!! ça part en live! Le terminal m’envoie une suite de prompt, puis des lignes vide sans s’arrêter de mouliner, que seul un ctrl C stop.  
Je ne sais pas si ça à une importance, mais je lance ça sous zsh.

Edit: mais si ça à une importance quel con, désolé Tamie, je t’ai fait pendre ton temps.

---

<div class="post-metadata">

**Author:** ![jelopo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/96bed5/32.png) [@jelopo](https://www.debian-fr.org/u/jelopo)\
**Post date:** [Mai 14, 2021, 8:47 UTC](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487/20 "2021-05-14T08:47:20Z")

</div>

Bonjour,

Essayer **screen**.

- Installation

- Utilisation

- Logger toute l’activité dans un fichier ~/screenlog.0

- Fermer la session screen

- Aide

> **[screen \[Wiki ubuntu-fr\]](https://doc.ubuntu-fr.org/screen)**

A+

[Page suivante](https://www.debian-fr.org/t/bash-une-ligne-pour-rediriger-lentree-et-la-sortie-vers-un-fichier/84487.md?page=2)
