informatique:linux:programmation_shell
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
informatique:linux:programmation_shell [2019/04/24 07:53] – [pipe ("|")] pteu | informatique:linux:programmation_shell [2019/04/24 09:36] – [Descripteurs de fichier] pteu | ||
---|---|---|---|
Line 240: | Line 240: | ||
</ | </ | ||
+ | |||
+ | ======Descripteurs de fichier====== | ||
+ | |||
+ | Il existe 3 descripteurs de fichier standards, utilisés par toutes les commandes : 0, 1 et 2 correspondants à STDIN, STDOUT et STDERR (input, output et erreur). 0 pointe par défaut sur le clavier, 1 et 2 sont affichés par défaut à l' | ||
+ | |||
+ | Pour lire depuis un fichier plutôt que depuis le clavier : | ||
+ | <code bash> | ||
+ | echo toto > / | ||
+ | read VAR < / | ||
+ | echo $VAR | ||
+ | toto | ||
+ | </ | ||
+ | |||
+ | ====Les redirecteurs==== | ||
+ | |||
+ | * ''>'' | ||
+ | * ''< | ||
+ | * ''&> | ||
+ | * ''<'' | ||
+ | |||
+ | Ces redirecteurs sont restaurés à leur valeur par défaut à chaque nouvelle ligne ; en revanche tous les processus fils héritent des descripteurs de leur processus père, à moins que celui-ci ne les ferme (voir plus bas). | ||
+ | |||
+ | '' | ||
+ | |||
+ | Pour rediriger le flux d' | ||
+ | <code bash> | ||
+ | ./prog 2>/ | ||
+ | </ | ||
+ | |||
+ | Pour rediriger le flux d' | ||
+ | <code bash> | ||
+ | ./prog 2>&1 | ./ | ||
+ | # équivaut à | ||
+ | ./prog |& ./prog2 | ||
+ | # (depuis bash4, " | ||
+ | </ | ||
+ | |||
+ | |||
+ | Par défaut ''>'' | ||
+ | <code bash> | ||
+ | ./prog 2>>/ | ||
+ | </ | ||
+ | Ainsi on conserve les erreurs de chaque exécution du programme. | ||
+ | |||
+ | On peut utiliser les descripteurs 3 et plus également, en les initialisant pour ne pas générer d' | ||
+ | <code bash> | ||
+ | echo " | ||
+ | echo " | ||
+ | toto | ||
+ | </ | ||
+ | |||
+ | Pour fermer un descripteur de fichier (le 3 par ex) : '' | ||
+ | |||
+ | On peut faire pointer un descripteur vers un fichier du système : | ||
+ | <code bash> | ||
+ | exec 3<> / | ||
+ | echo toto >&3 | ||
+ | exec 3>& | ||
+ | </ | ||
+ | |||
+ | Exemple d' | ||
+ | <code bash> | ||
+ | # An application of this is writing at a specified place in a file. | ||
+ | echo 1234567890 > File # Write string to " | ||
+ | exec 3<> File # Open " | ||
+ | read -n 4 <& | ||
+ | echo -n . >& | ||
+ | exec 3>& | ||
+ | cat File # ==> 1234.67890 | ||
+ | </ | ||
======Les fonctions====== | ======Les fonctions====== |
informatique/linux/programmation_shell.txt · Last modified: 2023/10/02 13:35 by pteu