logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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.]]
doc/programmation/shell/scripts.txt · Dernière modification: 23/12/2015 19:16 par milou

Pied de page des forums

Propulsé par FluxBB