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
Prochaine révision
Révision précédente
tutoriel:script_shell [Le 12/06/2020, 13:28]
bcag2 [Méthode dans un terminal]
tutoriel:script_shell [Le 05/10/2020, 15:23] (Version actuelle)
bcag2 ajout §[L'arithmétique]
Ligne 4: Ligne 4:
 ====== Introduction aux scripts shell ====== ====== Introduction aux scripts shell ======
  
-Un script ​s+Un script ​shell permet d'​automatiser une série d'​opérations. Il se présente sous la forme d'un fichier contenant une ou plusieurs commandes qui  seront exécutées de manière séquentielle.  
 +<​code>​ 
 +#​!/​bin/​bash 
 +# This script will take an animated GIF and delete every other frame 
 +# Accepts two parameters: input file and output file 
 +# Usage: ./<​scriptfilename>​ input.gif output.gif 
 # Make a copy of the file # Make a copy of the file
 cp $1 $2 cp $1 $2
Ligne 26: Ligne 32:
 =====Pour faire qu'un script soit exécutable ===== =====Pour faire qu'un script soit exécutable =====
  
-H==== Méthode graphique ====+==== Méthode graphique ====
  
 Votre script est un simple fichier texte, par défaut il s'​ouvre donc avec l'​éditeur de texte défini par défaut (ex : [[:​gedit|Gedit]] dans une session Unity ou Gnome).\\ Votre script est un simple fichier texte, par défaut il s'​ouvre donc avec l'​éditeur de texte défini par défaut (ex : [[:​gedit|Gedit]] dans une session Unity ou Gnome).\\
Ligne 63: Ligne 69:
 Cette commande chez moi donnait initialement : Cette commande chez moi donnait initialement :
   /​usr/​local/​bin:/​usr/​bin:/​bin:/​usr/​bin/​X11:/​usr/​games   /​usr/​local/​bin:/​usr/​bin:/​bin:/​usr/​bin/​X11:/​usr/​games
-ntion, ce répertoire s'​appelle **bin** et se place dans votre répertoire personnel. Si votre répertoire personnel est /home/toto, ce répertoire sera donc **/​home/​toto/​bin**.+ 
 +C'est à dire que le shell va aller voir si la définition de la commande tapée ("​ls"​ pour continuer sur le même exemple) se trouve dans **/​usr/​local/​bin** puis dans **/​usr/​bin**... jusqu'​à ce qu'il la trouve. 
 + 
 +Ajouter un répertoire au PATH peut donc être très pratique. Par convention, ce répertoire s'​appelle **bin** et se place dans votre répertoire personnel. Si votre répertoire personnel est /home/toto, ce répertoire sera donc **/​home/​toto/​bin**.
 Pour pouvoir utiliser mes scripts en tapant directement leur nom (sans le "​./"​) depuis n'​importe quel répertoire de mon ordinateur, il me suffit d'​indiquer au shell de chercher aussi dans ce nouveau dossier en l'​ajoutant au PATH. Pour pouvoir utiliser mes scripts en tapant directement leur nom (sans le "​./"​) depuis n'​importe quel répertoire de mon ordinateur, il me suffit d'​indiquer au shell de chercher aussi dans ce nouveau dossier en l'​ajoutant au PATH.
 Pour ceci, il suffit de faire : Pour ceci, il suffit de faire :
Ligne 251: Ligne 260:
 </​code>​ </​code>​
  
 +==== L'​arithmétique ====
 +<code bash>(( variable = 2 + $autre_var * 5 ))</​code>​
 +Exemple: besoin de définir des plages de valeurs (1 à 500 puis 501 à 1000 puis 1001 à 1500…)
 +<code bash>
 +id_per_step = 500
 +for (( i=0; i<8; i++ )); do
 + (( min_step_id = 1 + $i * $id_per_step ))
 + (( max_step_id = (( $i + 1 )) * $id_per_step ))
 + echo "​$min_step_id to $max_step_id "
 +done
 +</​code>​
 ===== Vocabulaire ===== ===== Vocabulaire =====
 ==== La commande test ==== ==== La commande test ====
Ligne 602: Ligne 622:
 for variable in valeurs; do for variable in valeurs; do
     instructions     instructions
 +done
 +</​code>​
 +
 +ou le classique:
 +<code bash>
 +for (( i=$min; i<=$max; i++ )); do
 +    instructions_avec_i # ou pas
 done done
 </​code>​ </​code>​
  • tutoriel/script_shell.1591961327.txt.gz
  • Dernière modification: Le 12/06/2020, 13:28
  • par bcag2