07-03-2020
This commit is contained in:
@@ -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
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user