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 12/06/2018, 17:48] L'Africain [Écrire un script] |
tutoriel:script_shell [Le 05/04/2019, 21:06] 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: ./<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 | ||
+ | </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 | ||
:'-( | :'-( |