Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
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 | ||
doc:programmation:shell:scripts [22/09/2013 23:31] 127.0.0.1 modification externe |
doc:programmation:shell:scripts [23/12/2015 19:16] milou [Rédaction de scripts Shell] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Scripts Bash ====== | + | ====== Rédaction de scripts Shell ====== |
- | Des scripts en cascade commentés en anglais. | + | * Objet : Rédaction de scripts Shell |
+ | * Niveau requis : {{tag>avisé}} | ||
+ | * Commentaires : //Faire des choses compliquées avec votre shell.// | ||
+ | * Ce tuto est la suite logique du tuto [[doc:programmation:shell:|sur le shell]]. N'oubliez pas de lire également [[doc:programmation:shell:|sur l'utilisation avancée du shell]]. | ||
+ | * Suivi : {{tag>à-tester}} | ||
+ | * Création par [[user>captnfab]] le 30/09/2013 | ||
+ | * Testé par .... le .... | ||
+ | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?pid=68350 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
- | La page documentation : | ||
- | * http://mywiki.wooledge.org/BashGuide | ||
- | La page scripts : | ||
- | * http://mywiki.wooledge.org/BashFAQ/ | ||
- | //Merci //**cthuluh** ! :-) | ||
- | ===== Références ===== | + | ===== #! et exécution ===== |
- | [[http://abs.traduc.org/abs-fr/|Guide avancé d'écriture des scripts Bash]] | + | La première ligne d'un script shell doit toujours commencer par ''#!'', suivi ensuite de l'interpréteur de commande à utiliser. |
+ | Si vous n'utilisez pas de commande propres à ''bash'' ou ''zsh'', vous pouvez laisser l'interpréteur de commande par défaut : | ||
+ | <code bash>#!/bin/sh</code> | ||
+ | Si vous voulez pouvoir exécuter votre script, n'oubliez pas de donner les droits correspondant à l'utilisateur devant l'exécuter. | ||
+ | |||
+ | Par exemple : | ||
+ | <code user>chmod a+x monscript.sh</code> | ||
+ | |||
+ | Ou encore : | ||
+ | <code root>chmod root:admin monscript.sh</code> | ||
+ | <code root>chmod 750 monscript.sh</code> | ||
+ | |||
+ | Voir ce lien où il est expliqué trois méthodes d'exécution d'un script : [[doc:programmation:shells:bash-les-differents-caracteres-speciaux?&#comment-executer-ses-scripts]] | ||
+ | ===== Récupération des arguments ===== | ||
+ | |||
+ | L'argument 0 est le chemin utilisé pour exécuter le programme. | ||
+ | |||
+ | Exemple, cela peut-être ''./monscript'' ou ''monscript'' s'il est dans le PATH, ou même ''./un-lien-vers-mon-script'' si vous avec utilisé ''ln''. | ||
+ | Il est accessible via la variable ''$0''. | ||
+ | |||
+ | Le premier argument est ensuite accessible via ''$1'', le deuxième via ''$2'', etc. | ||
+ | L'ensemble des arguments est accessible via ''$@'' alors que la concaténation de tous les arguments (séparés par des espaces) est accessible via ''$*''.Le nombre d'arguments est accessible via ''$#''.\\ | ||
+ | Voir : [[doc:programmation:shells:bash-les-differents-caracteres-speciaux?&#variables-de-substitution-predefinies-principalement-dans-les-scripts]] | ||
+ | |||
+ | La commande ''shift'' permet de décaler tous les arguments vers la gauche (''$1'' désigne le second, etc.). | ||
+ | |||
+ | Exemple : | ||
+ | <code bash script>#!/bin/sh | ||
+ | |||
+ | echo "Commande initiale : $0 $@" | ||
+ | |||
+ | N=0 | ||
+ | while [ -n "$1" ]; | ||
+ | do | ||
+ | N=$(($N+1)) | ||
+ | echo "Argument $N : $1"; | ||
+ | shift; | ||
+ | done</code> | ||
+ | |||
+ | Pour tout comprendre de cet exemple voir les [[doc:programmation:shell:avancee|Fonctionnalités avancées du Shell]] | ||
+ | ainsi que les liens que vous y trouverez. | ||
+ | ===== Liens à visiter ===== | ||
+ | |||
+ | * [[doc:programmation:scripts | Divers scripts disponibles.]] |