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 Les deux révisions suivantes | ||
tutoriel:script_shell [Le 06/02/2019, 09:48] 90.43.200.121 [Pour exécuter un script] |
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 ===== | ||
- | |||
- | 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> | ||
#!/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: ./<scriptfilename> input.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 | ||
=====Pour faire qu'un script soit éxécutable ===== | =====Pour faire qu'un script soit éxécutable ===== | ||