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édentesRévision précédente
Prochaine révision
Révision précédente
tutoriel:script_shell [Le 18/05/2026, 22:30] – [Méthode dans un terminal] réécriture | +shebang (!) | mise en forme | pas de première personne | liens internes | etc. krodelabestioletutoriel:script_shell [Le 28/07/2026, 10:51] (Version actuelle) – [Liens] ajout lien vers blog S.Robert ! bcag2
Ligne 76: Ligne 76:
 === $PATH === === $PATH ===
  
-La [[:variables_d_environnement|variable d'environnement]] ''[[:variables_d_environnement#variables_liees_aux_emplacements_de_fichiers|$PATH]]'' défini les répertoire où le système doit chercher les fichiers exécutables.+La [[:variables_d_environnement|variable d'environnement]] ''[[:variables_d_environnement#variables_liees_aux_emplacements_de_fichiers|$PATH]]'' définit les répertoires où le système doit chercher les fichiers exécutables.
  
-En plaçant un fichier exécutable (comme un script) dans l'un de ces répertoires, il n'est pas nécessaire de spécifier son [[:chemins|chemin]] complet pour le lancer.\\ +En plaçant un fichier exécutable (comme un script) dans l'un de ces répertoires, il n'est pas nécessaire de spécifier son [[:chemins|chemin]] complet pour le lancer. Le nom du fichier suffit.\\ 
-Ubuntu dispose d'un répertoire [[:arborescence#binaires personnels]] à cet effet dans le [[:arborescence#répertoire personnel]] de chaque [[:utilisateur]], qu'on peut manipuler sans les [[:permissions administrateur]].+Ubuntu dispose d'un répertoire des [[:arborescence#binaires personnels]] à cet effet dans le [[:arborescence#répertoire personnel]] de chaque [[:utilisateur]], qu'on peut manipuler sans les [[:permissions administrateur]].
  
 Pour voir à quoi ressemble ''$PATH'', entrer la commande : Pour voir à quoi ressemble ''$PATH'', entrer la commande :
Ligne 87: Ligne 87:
   /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games   /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
  
-C'est à dire que le système va aller voir si un script ou un exécutable se trouve dans ''/usr/local/bin'', puis dans ''/usr/bin'', puis dans ''/bin'', etc.+C'est à dire que le système va aller voir si un script ou un exécutable se trouve dans ''/usr/local/bin'', puis dans ''/usr/bin'', puis dans ''/bin'', etc.
  
 On peut aussi ajouter un répertoire particulier à la variable ''$PATH''.\\ On peut aussi ajouter un répertoire particulier à la variable ''$PATH''.\\
-Pour ceci, il suffit de faire :+Pour ceci, il suffit d'entrer :
   export PATH=$PATH:$HOME/bin   export PATH=$PATH:$HOME/bin
 où ''$HOME/bin'' est le répertoire concerné. où ''$HOME/bin'' est le répertoire concerné.
Ligne 127: Ligne 127:
 Il existe encore beaucoup d'autres types de //shells//.\\ Pour savoir quel type de //shell// est utilisé sur une machine, entrer la commande ''[[man>ps]]''. Il existe encore beaucoup d'autres types de //shells//.\\ Pour savoir quel type de //shell// est utilisé sur une machine, entrer la commande ''[[man>ps]]''.
  
-La commande ''[[man>sh]]'' est en fait un lien symbolique vers l'interpréteur de commandes par défaut : ''/usr/bin/dash''.+La commande ''[[man>sh]]'' est en fait un [[:lien_physique_et_symbolique|lien symbolique]] vers l'interpréteur de commandes par défaut : ''/usr/bin/dash''.
  
 <note> <note>
Ligne 358: Ligne 358:
  
 Il y a en 3 : Il y a en 3 :
-  * le **et** logique : -a +^ opérateur ^ solution POSIX ^ solution BASH moderne ^ 
-  le **ou** logique -o +**et** logique | **-a** avec simple crochets,\\ exemple <code>[ -n "$ma_var" -a "$ma_var" = "Oui" ]</code>\\ mais on peut aussi écrire :\\ <code>[ -n "$ma_var" ] &&  [ "$ma_var" = "Oui" ]</code>**&&** avec double crochets, exemple : <code bash>[[ -n "$ma_var" && "$ma_var" == "Oui" ]]</code>
-  le **non** logique : ! +**ou** logique | **-o** avec simple crochets | **||** avec double crochets\\ <code bash>[[ "$ma_var" = "Oui" || "$ma_var" = "Yes" ]]</code> 
-Exemple : +| **non** logique | **!** dans tous les cas | |
-<code bash> +
-echo "renverra 0 si les deux expressions sont vraies" +
-test expr1 -a expr2   +
-[ expr1 -a expr2 ] +
-</code>+
  
 == Table de vérité de « -a » == == Table de vérité de « -a » ==
Ligne 441: Ligne 436:
 L'instruction ''`read`'' permet d'affecter une valeur ou un caractère à une variable quelconque, en la demandant à l'utilisateur. L'instruction ''`read`'' permet d'affecter une valeur ou un caractère à une variable quelconque, en la demandant à l'utilisateur.
  
-<note>En bash, la variable est considérée comme une chaîne même si celle-ci contient une valeur numérique, et les majuscules sont considérées différentes des minuscules, $M ≠ $m.</note>+<note>En bash, la variable est considérée comme une chaîne même si celle-ci contient une valeur numérique,\\ et les majuscules sont considérées différentes des minuscules, $M ≠ $m.</note>
  
 Ensuite vient l'instruction conditionnelle `if`. Elle est suivie d'un « [ » Ensuite vient l'instruction conditionnelle `if`. Elle est suivie d'un « [ »
Ligne 929: Ligne 924:
 ===== Liens ===== ===== Liens =====
  
-  * (fr) https://marcg.developpez.com/ksh/ Pour ceux qui souhaitent aller plus loin dans la conception de script shell.+  * (fr) [[https://blog.stephane-robert.info/docs/admin-serveurs/linux/exploiter/scripts/shell/|Très bon tuto de Stéphane Robert]] 
 +  * (fr) [[https://marcg.developpez.com/ksh/|Pour ceux qui souhaitent aller plus loin dans la conception de script shell, tuto de MarcG sur developpez.com]]
   * (fr) [[https://abs.traduc.org/abs-fr/|Guide avancé d'écriture des scripts Bash]] : Un très bon tutoriel concernant la réalisation du script shell. C'est l'un des plus complets et les mieux détaillés disponibles en français. Il contient également [[http://abs.traduc.org/abs-5.3-fr/apa.html|des exemples de script complets]], une [[http://abs.traduc.org/abs-5.3-fr/apb.html|carte de référence]] (variables, tests...). Ce site est un site qui vaut réellement le détour pour tous ceux qui cherchent à créer des scripts complets en utilisant au mieux les performances du shell.   * (fr) [[https://abs.traduc.org/abs-fr/|Guide avancé d'écriture des scripts Bash]] : Un très bon tutoriel concernant la réalisation du script shell. C'est l'un des plus complets et les mieux détaillés disponibles en français. Il contient également [[http://abs.traduc.org/abs-5.3-fr/apa.html|des exemples de script complets]], une [[http://abs.traduc.org/abs-5.3-fr/apb.html|carte de référence]] (variables, tests...). Ce site est un site qui vaut réellement le détour pour tous ceux qui cherchent à créer des scripts complets en utilisant au mieux les performances du shell.
   * (fr) https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux : Un tutoriel très complet pour linux qui comporte quelques parties sur la réalisation de scripts bash.   * (fr) https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux : Un tutoriel très complet pour linux qui comporte quelques parties sur la réalisation de scripts bash.