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 [01/10/2013 00:09] captnfab |
doc:programmation:shell:scripts [23/12/2015 19:16] (Version actuelle) milou [Rédaction de scripts Shell] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Rédaction de scripts Shell ====== | ====== Rédaction de scripts 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]]. | + | * 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 !)) | ||
- | ===== Le #! ===== | + | |
+ | |||
+ | |||
+ | ===== #! et exécution ===== | ||
La première ligne d'un script shell doit toujours commencer par ''#!'', suivi ensuite de l'interpréteur de commande à utiliser. | La première ligne d'un script shell doit toujours commencer par ''#!'', suivi ensuite de l'interpréteur de commande à utiliser. | ||
Ligne 9: | Ligne 19: | ||
<code bash>#!/bin/sh</code> | <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 ===== | ===== Récupération des arguments ===== | ||
Ligne 17: | Ligne 37: | ||
Le premier argument est ensuite accessible via ''$1'', le deuxième via ''$2'', etc. | 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 ''$*''. | + | 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.). | La commande ''shift'' permet de décaler tous les arguments vers la gauche (''$1'' désigne le second, etc.). | ||
Exemple : | Exemple : | ||
- | <code bash>#!/bin/sh | + | <code bash script>#!/bin/sh |
echo "Commande initiale : $0 $@" | echo "Commande initiale : $0 $@" | ||
Ligne 33: | Ligne 54: | ||
shift; | shift; | ||
done</code> | 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.]] |