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/2018, 17:48]
L'Africain [Écrire un script]
tutoriel:script_shell [Le 05/04/2019, 21:06] (Version actuelle)
154.105.205.239
Ligne 1: Ligne 1:
 {{tag>​programmation script shell console tutoriel}} {{tag>​programmation script shell console tutoriel}}
- +---
-----+
  
 ====== Introduction aux scripts shell ====== ====== Introduction aux scripts shell ======
  
-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. ​ +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. ​
- +
-===== Écrire un script ===== +
- +
-Si vous voulez écrire un script, vous avez deux possibilités : +
-  * soit vous tapez dans un shell toutes les commandes +
-  * ou alors vous rassemblez toutes les instructions copiées, +
- +
-À titre d'​exemple,​ saisissez ces quelques lignes dans votre éditeur préféré : +
 <​code>​ <​code>​
 #!/bin/bash #!/bin/bash
-Indique au système que l'​argument qui suit est le programme utilisé pour exécuter ce fichier +This script will take an animated GIF and delete every other frame 
-En règle générale, les "#" servent à mettre en commentaire le texte qui suit comme ici +Accepts two parameters: input file and output file 
-echo Mon premier script +Usage./<scriptfilenameinput.gif output.gif
-echo Liste des fichiers ​: +
-ls -la +
-</code>+
  
-Le résultat de ce script est d'​écrire à l'​écran « Mon premier script », puis +# Make a copy of the file 
-en dessous « Liste des fichiers :​ »,​ et enfin la liste des fichiers avec la +cp $1 $2
-commande ''​`ls -la`''​. ​+
  
-Comme vous l'avez compris, la commande [[http://​www.linuxpedia.fr/​doku.php/​commande/​echo|echo]] sert à écrire +# Get the number of frames 
-quelque chose à l'​écran.+numframes=`gifsicle $1 -I | grep -P "\d+ images"​ --only-matching | grep -P "​\d+"​ --only-matching`
  
-<note warning>​Cependant il vous faudra faire extrêmement attention à tous ces morceaux de code. Leur utilisation sans connaissance de votre part pourrait vous faire perdre de précieuses données. +# Deletion 
-exemple: surtout ne pas lancer cette commande rm -Rf /* qui supprime TOUS vos fichiers !!!! +let i=0 
-</​note>​+while [[ $i -lt $numframes ​ ]]; do 
 +    ​rem=$(( $i % 2 ))
  
 +    if [ $rem -eq 0 ]
 +    then
 +        gifsicle $2 --delete "#"​$(($i/​2)) -o $2 
 +    fi
 +
 +    let i=i+1 
 +done
 +</​code>​
 +=====Pour faire qu'un script soit éxécutable =====
  
-=====Pour exécuter un script ===== 
-il faut le rendre éxécutable : 
 ==== Méthode graphique ==== ==== Méthode graphique ====
  
Ligne 54: Ligne 48:
   - Ouvrez votre gestionnaire de fichier [[:​pcmanfm|PCManFM]] et allez dans le menu supérieur sur //éditer -> Préférences//​ puis dans la fenêtre qui s'​ouvre sélectionnez //​Avancé//​.   - Ouvrez votre gestionnaire de fichier [[:​pcmanfm|PCManFM]] et allez dans le menu supérieur sur //éditer -> Préférences//​ puis dans la fenêtre qui s'​ouvre sélectionnez //​Avancé//​.
   - Remplacez le contenu du champs //Terminal emulator// par le contenu du champs //​Commande//​ que vous avez pris soin de noter à la première étape.   - Remplacez le contenu du champs //Terminal emulator// par le contenu du champs //​Commande//​ que vous avez pris soin de noter à la première étape.
-  - Vous pouvez ensuite suivre la méthode graphique indiquée ci-dessus pour exécuter vos scripts shell. +  - Vous pouvez ensuite suivre la méthode graphique indiquée ci-dessus pour exécuter vos scripts shell 
-  - Pour Ubuntu 17.10, il faut en plus installer les paquets nautilus-open-terminal et nautilus-scripts-manager pour pouvoir lancer un script depuis Nautilus+
 ==== Méthode dans un terminal ==== ==== Méthode dans un terminal ====
  
Ligne 65: Ligne 59:
 Puis vous pouvez exécuter le script en faisant : <​code>​./​nom_du_script</​code>​ Puis vous pouvez exécuter le script en faisant : <​code>​./​nom_du_script</​code>​
 mais pourquoi le ./ ? mais pourquoi le ./ ?
-=== le /. ===+=== Le chemin ​.===
  
 Il peut être intéressant d'​ajouter un répertoire au "​PATH"​ pour pouvoir exécuter ses scripts sans avoir à se placer dans le bon dossier. Il peut être intéressant d'​ajouter un répertoire au "​PATH"​ pour pouvoir exécuter ses scripts sans avoir à se placer dans le bon dossier.
Ligne 722: Ligne 716:
     echo "You love the... pudding !"     echo "You love the... pudding !"
 elif [ ${LANG:0:2} = "​es"​ ]; then elif [ ${LANG:0:2} = "​es"​ ]; then
-    echo "Te gusta el ramón ​!" ​   ​+    echo "Te gusta el jamón ​!" ​   ​
 else else
     echo ":'​-("​     echo ":'​-("​
Ligne 735: Ligne 729:
 You love the... pudding ! You love the... pudding !
 $ env LANG=es ./​favoritefood $ env LANG=es ./​favoritefood
-Te gusta el ramón ​!+Te gusta el jamón ​!
 $ env LANG=it ./​favoritefood $ env LANG=it ./​favoritefood
 :'-( :'-(
  • tutoriel/script_shell.1528818513.txt.gz
  • Dernière modification: Le 12/06/2018, 17:48
  • par L'Africain