07-03-2020

This commit is contained in:
2020-03-07 08:26:20 +01:00
parent f760227ba1
commit f9ae910168
13 changed files with 248 additions and 43 deletions

View File

@@ -1,24 +1,40 @@
# I/O Redirections
#### Standard Output
Redirige la sortie standart vers un nouveau fichier:
| | Descripteur | Identifiant |
| --------------- | ----------- | ----------- |
| Entrée standard | stdin | 0 |
| Sortie standard | stdout | 1 |
| Sortie erreur | stderr | 2 |
#### Redirection de sortie: `>`
Redirige la <u>sortie standart</u> vers un nouveau fichier:
```bash
$ ls > liste.txt
```
Redirige la sortie standart vers un fichier (ajoute à la suite):
Redirige la <u>sortie standart</u> vers un fichier (ajoute à la suite):
```bash
$ ls >> liste.txt
```
Redirige la <u>sortie erreur</u> vers un fichier:
```bash
>2 erreur.log
```
#### Standard Input
#### Redirection d'entrée: `<`
Considère liste.txt comme entrée standart (au lieu du clavier):
@@ -26,6 +42,30 @@ Considère liste.txt comme entrée standart (au lieu du clavier):
$ sort < liste.txt
```
Envoyer un contenu à une commande avec votre clavier.
```bash
$ sort -n << FIN
heredoc… 45
heredoc… 23
heredoc… 12
heredoc… 78
heredoc… 45
heredoc… 9
heredoc… FIN
9
12
23
45
45
78
$ wc -m << STOP
heredoc… Combien de caracteres ?
heredoc… STOP
24
```
#### On peut combiner les 2
@@ -36,23 +76,78 @@ $ sort < liste.txt > liste_triee.txt
#### Rediriger vers un autre descripteur: `>&`
Rediriger la sortie standard sur la sortie d'erreur:
```bash
$ echo "Error" 1>&2
$ echo "Error" >&2
```
#### Le trou noir: `/dev/null`
- si on affiche son contenu, on n'obtient rien.
- si on écrit quelque chose dedans, il disparait.
```bash
$ echo "Bonjour"
Bonjour
$ echo "Bonjour" >/dev/null
```
#### Connecter 2 processus: `|`
La sortie d'un programme est utilisée comme entrée d'un autre.
```bash
$ echo "Hello!" | tr "[:lower:]" "[:upper:]"
HELLO!
```
#### Erreurs
Rediriger les erreurs vers un fichier:
Rediriger les <u>erreurs</u> vers un fichier:
```bash
$ UneCommande & > fichier-erreurs.txt
$ UneCommande 2> fichier-erreurs.txt
```
Rediriger les erreurs vers un fichier (ajoute à la suite)::
Rediriger les <u>erreurs</u> vers un fichier (ajouter à la suite)::
```bash
$ UneCommande & > fichier-erreurs.txt
$ UneCommande 2>> erreurs.log
```
Rediriger la <u>sortie standart</u> et les <u>erreurs</u> vers un fichier:
```bash
$ UneCommande 2> erreurs.log
```
Rediriger la sortie et les erreurs vers un fichier:
```bash
$ UneCommande 2>&1 | tee fichier.txt
```
#### Fusionner les sorties
Il est possible de fusionner les sorties (standart et erreur) dans un seul et même fichier.
```bash
$ bad_command >>filename 2>&1
```