Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
tutoriel:script_shell [Le 10/01/2019, 22:41] moko138 [Méthode graphique] Supprimé la ligne sur nautilus et sur 17.10 dans le § sur Lubuntu. |
tutoriel:script_shell [Le 18/02/2019, 00:51] 46.193.65.102 [Écrire un script] |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
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 ===== | + | #!/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 | ||
- | Si vous voulez écrire un script, vous avez deux possibilités : | + | # Make a copy of the file |
- | * soit vous tapez dans un shell toutes les commandes | + | cp $1 $2 |
- | * ou alors vous rassemblez toutes les instructions copiées, | + | |
- | + | ||
- | À titre d'exemple, saisissez ces quelques lignes dans votre éditeur préféré : | + | |
- | + | ||
- | <code> | + | |
- | #!/bin/bash | + | |
- | # Indique au système que l'argument qui suit est le programme utilisé pour exécuter ce fichier | + | |
- | # En règle générale, les "#" servent à mettre en commentaire le texte qui suit comme ici | + | |
- | echo Mon premier script | + | |
- | echo Liste des fichiers : | + | |
- | ls -la | + | |
- | </code> | + | |
- | Le résultat de ce script est d'écrire à l'écran « Mon premier script », puis | + | # Get the number of frames |
- | en dessous « Liste des fichiers : », et enfin la liste des fichiers avec la | + | numframes=`gifsicle $1 -I | grep -P "\d+ images" --only-matching | grep -P "\d+" --only-matching` |
- | commande ''`ls -la`''. | + | |
- | Comme vous l'avez compris, la commande [[http://www.linuxpedia.fr/doku.php/commande/echo|echo]] sert à écrire | + | # Deletion |
- | quelque chose à l'écran. | + | let i=0 |
+ | while [[ $i -lt $numframes ]]; do | ||
+ | rem=$(( $i % 2 )) | ||
- | <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. | + | if [ $rem -eq 0 ] |
- | exemple: surtout ne pas lancer cette commande rm -Rf /* qui supprime TOUS vos fichiers !!!! | + | then |
- | </note> | + | gifsicle $2 --delete "#"$(($i/2)) -o $2 |
+ | fi | ||
+ | let i=i+1 | ||
+ | done | ||
+ | =====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 ==== | ||