Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
projets:ecole:scripting:initiation_au_shell [Le 11/09/2022, 13:17]
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
projets:ecole:scripting:initiation_au_shell [Le 04/08/2023, 00:00] (Version actuelle)
Amiralgaby correction formatage des chevrons double pour ne pas être interprété par dokuwiki
Ligne 7: Ligne 7:
  
 ----------------- -----------------
- 
- 
  
 ===== Généralités ===== ===== Généralités =====
Ligne 39: Ligne 37:
  
 ----------------- -----------------
- 
- 
  
 ===== Redirections ===== ===== Redirections =====
  
-{{icons:​icone_danger.png ​ }} +Les **redirections** permettent simplement (comme leur nom l'​indique),​ de rediriger un des trois descripteurs de fichier vu plus haut vers à peu près tout ce que vous voulez. Les opérateurs utilisés sont ">", ​%%">>"​%%, "<" ​et %%"<<"​%%
->​Dokuwiki remplace automatiquement > >  et < <(sans l'​espace entre les deux) par un guillemet comme ça >> et comme ça <<, donc jusqu'​à ce qu'une solution soit trouvée (par vous peut être...) pensez à faire le changement mentalement. +
- +
-Les **redirections** permettent simplement (comme leur nom l'​indique),​ de rediriger un des trois descripteurs de fichier vu plus haut vers à peu près tout ce que vous voulez. Les opérateurs utilisés sont <​code>​">",​ ">>",​ "<"​"<<"​</​code>​+
  
 ==== Sorties ==== ==== Sorties ====
Ligne 63: Ligne 56:
 Techniquement,​ lorsque ">"​ est utilisé le fichier vers lequel la sortie est redirigée est créé s'il n'​existait pas auparavant, sinon il est écrasé. Techniquement,​ lorsque ">"​ est utilisé le fichier vers lequel la sortie est redirigée est créé s'il n'​existait pas auparavant, sinon il est écrasé.
  
-Pour conserver le fichier original, vous pouvez utiliser ">>"​ qui n'​écrasera pas le contenu du fichier s'il existe déjà. Par exemple :+Pour conserver le fichier original, vous pouvez utiliser ​%%">>"​%% qui n'​écrasera pas le contenu du fichier s'il existe déjà. Par exemple :
  
 <​code>​ls >> test</​code>​ <​code>​ls >> test</​code>​
Ligne 79: Ligne 72:
 ==== Entrées ==== ==== Entrées ====
  
-Pour rediriger vers l'​entrée standard stdin, nous allons utiliser "<"​ et "<<"​.+Pour rediriger vers l'​entrée standard stdin, nous allons utiliser "<"​ et %%"<<"​%%.
  
 "​wc"​ permet de compter le nombre de lignes (option -l) ou de mots (option -w), plus d'​informations dans la page man de wc, en entrée. Pour compter le nombre de lignes d'un fichier on peut donc utiliser : "​wc"​ permet de compter le nombre de lignes (option -l) ou de mots (option -w), plus d'​informations dans la page man de wc, en entrée. Pour compter le nombre de lignes d'un fichier on peut donc utiliser :
Ligne 89: Ligne 82:
 <​code>​wc -l fichier</​code>​ <​code>​wc -l fichier</​code>​
  
-"<<"​ permet lui aussi de rediriger stdin mais jusqu'​à une chaîne de caractère que l'on précisera : littéralement on pourrait dire que << transmet notre entrée standard (clavier) au programme à sa gauche, et cela jusqu'​à ce qu'il rencontre une ligne EOF ((End of File : Fin de fichier)).+%%"<<"​%% permet lui aussi de rediriger stdin mais jusqu'​à une chaîne de caractère que l'on précisera : littéralement on pourrait dire que %%<<%% transmet notre entrée standard (clavier) au programme à sa gauche, et cela jusqu'​à ce qu'il rencontre une ligne EOF ((End of File : Fin de fichier)).
  
 Par exemple la commande suivante vous permettra de taper un texte, d'​aller à la ligne autant de fois que vous voulez en appuyant sur Entrée, puis lorsque vous taperez EOF (pour End of File, fin du fichier) et entrée, elle comptera le nombre de lignes (celle de EOF non comprise) que vous avez entrées. Par exemple la commande suivante vous permettra de taper un texte, d'​aller à la ligne autant de fois que vous voulez en appuyant sur Entrée, puis lorsque vous taperez EOF (pour End of File, fin du fichier) et entrée, elle comptera le nombre de lignes (celle de EOF non comprise) que vous avez entrées.
Ligne 97: Ligne 90:
 Vous pouvez bien sur spécifier un chaîne différente de EOF comme FIN, END... Vous pouvez bien sur spécifier un chaîne différente de EOF comme FIN, END...
  
-En utilisant ">>"​ et "<<"​ nous pouvons facilement ajouter du texte dans un fichier de notre choix de la même manière qu'un éditeur de texte :+En utilisant ​%%">>"​%% et %%"<<"​%% nous pouvons facilement ajouter du texte dans un fichier de notre choix de la même manière qu'un éditeur de texte :
  
 <​code>​cat >> fichier << EOF</​code>​ <​code>​cat >> fichier << EOF</​code>​
Ligne 112: Ligne 105:
  
 - stderr vers stdout ... donc vers /dev/null - stderr vers stdout ... donc vers /dev/null
- 
  
 La commande exécutée ne renverra ni sa sortie, ni ses messages d'​erreur. La commande exécutée ne renverra ni sa sortie, ni ses messages d'​erreur.
 C'est équivalent à : <​code>​commande > /dev/null 2 > /​dev/​null</​code>​ C'est équivalent à : <​code>​commande > /dev/null 2 > /​dev/​null</​code>​
- 
  
 {{icons:​iconnote.png ​ }} {{icons:​iconnote.png ​ }}
  • projets/ecole/scripting/initiation_au_shell.txt
  • Dernière modification: Le 04/08/2023, 00:00
  • par Amiralgaby