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
Prochaine révision Les deux révisions suivantes
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [11/07/2014 15:31]
Hypathie [Comment créer et exécuter un script ?]
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [15/10/2015 17:40]
milou [Comment créer et exécuter un script ?]
Ligne 1: Ligne 1:
 ====== Apprendre à rédiger des scripts sous bash====== ====== Apprendre à rédiger des scripts sous bash======
  
 +  * Objet : Apprendre à rédiger des scripts sous bash
   * Niveau requis : {{tag>​débutant}}   * Niveau requis : {{tag>​débutant}}
 +  * Commentaires : FIXME
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
-  * Suivi : {{tag>​à-placer}}+  * Suivi : 
     * Création par [[user>​Hypathie]] 18/03/2014     * Création par [[user>​Hypathie]] 18/03/2014
-    * Testé par <​Hypathie> le <Juin 2014>+    * Testé par [[user>Hypathie]] ​le <Juin 2014>
   * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​pid=92203#​p92203|Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))   * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​pid=92203#​p92203|Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
 +
 +
 +------
  
 **Nota : Les autres wiki :** **Nota : Les autres wiki :**
Ligne 13: Ligne 18:
   * [[atelier:​chantier:​script-bash-detail-sur-les-parametres-et-les-boucles|script bash : modification de variable et de paramètre]]   * [[atelier:​chantier:​script-bash-detail-sur-les-parametres-et-les-boucles|script bash : modification de variable et de paramètre]]
   * [[atelier:​chantier:​script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]]   * [[atelier:​chantier:​script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]]
-  * [[atelier:​chantier:​script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]] +  * [[atelier:​chantier:​script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sortie-et-les-tests]] 
-  * [[atelier:chantier:script-bash-les-tableaux|script-bash-les-tableaux]] +  * [[doc:programmation:​bash:script:tableaux|script-bash-les-tableaux]] 
-  * [[atelier:chantier:script-bash-les-fonctions|script-bash-les-fonctions]]+  * [[doc:programmation:​bash:script:fonction|script-bash-les-fonctions]]
  
 Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
Ligne 25: Ligne 30:
   * [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
   * [[doc:​programmation:​shell:​shell|Le shell pour tous]]   * [[doc:​programmation:​shell:​shell|Le shell pour tous]]
-  * [[atelier:chantier:​bash-les-differents-caracteres-speciaux|Bash : Introduction]]+  * [[doc:programmation:​shells:​bash-les-differents-caracteres-speciaux|Bash : Introduction]]
  
   * pour s'​exercer sur la question de chemin relatif et absolu : [[doc:​programmation:​shell:​illustration-navigation-shell]]   * pour s'​exercer sur la question de chemin relatif et absolu : [[doc:​programmation:​shell:​illustration-navigation-shell]]
-  * un résumé : [[atelier:chantier:​la-page-man-bash-les-caracteres-speciaux#​les-caracteres-symboliques|caractères symboliques]]+  * un résumé : [[docs:programmation:​shells:​la-page-man-bash-les-caracteres-speciaux#​les-caracteres-symboliques|caractères symboliques]]
  
  
Ligne 51: Ligne 56:
 Pour décortiquer les bashismes : http://​rgeissert.blogspot.fr/​search/​label/​bashisms **Merci [[user>​captnfab]]** ^_^)) est un standard :  Pour décortiquer les bashismes : http://​rgeissert.blogspot.fr/​search/​label/​bashisms **Merci [[user>​captnfab]]** ^_^)) est un standard : 
 Utiliser ''#​!/​bin/​sh''​ permet de tenir compte du standard sh de POSIX.\\ ​ Utiliser ''#​!/​bin/​sh''​ permet de tenir compte du standard sh de POSIX.\\ ​
 +
 Voici un PDF assez complet pour apprendre à utiliser le shell sh : http://​igm.univ-mlv.fr/​~masson/​Teaching/​PIM-INF3/​shell.pdf\\ Voici un PDF assez complet pour apprendre à utiliser le shell sh : http://​igm.univ-mlv.fr/​~masson/​Teaching/​PIM-INF3/​shell.pdf\\
  
Ligne 81: Ligne 87:
 ^ POSIX                                 ^ À éviter : bashisme ​                      ^ ^ POSIX                                 ^ À éviter : bashisme ​                      ^
 | if [ "​$toto"​ ''​=''​ "​$titi"​ ] ; then …  | if [ "​$toto"​ ''​==''​ "​$titi"​ ] ; then …   | | if [ "​$toto"​ ''​=''​ "​$titi"​ ] ; then …  | if [ "​$toto"​ ''​==''​ "​$titi"​ ] ; then …   |
-| diff -u ''​fichier.orig fichier.c'' ​    | diff -u ''​fichier.c{.orig,​}'' ​           |+| diff -u ''​fichier.orig fichier.c'' ​    | diff -u ''​fichier.{orig,​c}'' ​           |
 | mkdir ''/​tototiti /​tototutu'' ​         | mkdir ''/​toto{titi,​tutu}'' ​              | | mkdir ''/​tototiti /​tototutu'' ​         | mkdir ''/​toto{titi,​tutu}'' ​              |
 | ''​funcname()''​ { … }                   | ''​function funcname()''​ { … }            | | ''​funcname()''​ { … }                   | ''​function funcname()''​ { … }            |
Ligne 107: Ligne 113:
 </​code>​ </​code>​
  
-  ​Coucou+<file config retour de la commande>​Coucou</​file>​
  
   * Pour aller plus loin :   * Pour aller plus loin :
Ligne 133: Ligne 139:
 </​code>​ </​code>​
 Si l'on a exécuté cette commande à l'​ouverture de son terminal, le fichier "​mon-script"​ est alors placé dans son répertoire courant.\\ ​ Si l'on a exécuté cette commande à l'​ouverture de son terminal, le fichier "​mon-script"​ est alors placé dans son répertoire courant.\\ ​
-Et oui une script est un simple fichier texte dont le contenu (une suite de commandes et d'​instruction) est exécutable. :-D +Et oui un script est un simple fichier texte dont le contenu (une suite de commandes et d'​instruction) est exécutable. :-D 
        
   * Puis donnons à ce fichier les droits d'​exécution :\\    * Puis donnons à ce fichier les droits d'​exécution :\\ 
Ligne 156: Ligne 162:
 echo -n "​Bonjour les copains" ​ echo -n "​Bonjour les copains" ​
 </​code>​ </​code>​
-  ​* Pour exécuter ce script il suffit d'​inscrire ​''​bash nom-du-script''​ dans un terminal.+ 
 +  ​* Pour exécuter ce script il suffit d'​inscrire ​dans un terminal. 
 +<​code>​bash nom-du-script</​code>​
  
 >Comme on le fait pour une commande. >Comme on le fait pour une commande.
Ligne 167: Ligne 175:
 bash mon-script bash mon-script
 </​code>​ </​code>​
-<code>+<file config retour de la commande>
 Bonjour les copainsutiliateur@debian:​~$ Bonjour les copainsutiliateur@debian:​~$
-</code>+</file>
  
 <​note>​ <​note>​
Ligne 186: Ligne 194:
 bash --posix mon-script bash --posix mon-script
 </​code> ​ </​code> ​
-<code>+<file config retour de la commande>
 Bonjour les copainsutilisateur@debian:​~$ Bonjour les copainsutilisateur@debian:​~$
-</code>+</file>
  
 ====Le sha-bang et ./​mon-script ==== ====Le sha-bang et ./​mon-script ====
Ligne 209: Ligne 217:
 ==== Exécuter son script depuis n'​importe où !==== ==== Exécuter son script depuis n'​importe où !====
  
-À voir : [[atelier:chantier:​la-page-man-bash-les-caracteres-speciaux#​modifier-durablement-la-valeur-de-la-variable-d-environnement-path]] ​+À voir : [[docs:programmation:​shells:​la-page-man-bash-les-caracteres-speciaux#​modifier-durablement-la-valeur-de-la-variable-d-environnement-path]] ​
  
   * Il faut pour cela placer le chemin absolu de son script dans le Path,\\ C'​est-à-dire dans l'un des répertoires ''/​bin'',​ ''/​usr/​bin''​ ou ''/​usr/​local/​bin''​   * Il faut pour cela placer le chemin absolu de son script dans le Path,\\ C'​est-à-dire dans l'un des répertoires ''/​bin'',​ ''/​usr/​bin''​ ou ''/​usr/​local/​bin''​
Ligne 279: Ligne 287:
 </​code>​ </​code>​
  
-<​code>​+docs:​programmation:​shells:​la-page-man-bash-les-caracteres-speciaux
 yep coucou! yep coucou!
-</code>+</file>
  
 <​note>​ <​note>​
Ligne 290: Ligne 298:
 echo $PATH echo $PATH
 </​code>​ </​code>​
-<​code>​+docs:​programmation:​shells:​la-page-man-bash-les-caracteres-speciaux
 /​usr/​local/​bin:/​usr/​bin:/​bin:/​usr/​local/​games:/​usr/​games:/​home/​utilisateur/​MesScripts /​usr/​local/​bin:/​usr/​bin:/​bin:/​usr/​local/​games:/​usr/​games:/​home/​utilisateur/​MesScripts
-</code>+</file>
   * Concernant la commande ''​source ~/​.bashrc''​\\(ou son équivalent ''​. ~/​.bashrc''​):​\\ ​ notons que cela ne fonctionne que pour faire prendre en compte un ajout dans le fichier ''​~/​.bashrc''​.\\ Si au contraire, on dé-commente une ligne de ce fichier, il faudra fermer puis ré-ouvrir le terminal pour que le changement soit effectif.   * Concernant la commande ''​source ~/​.bashrc''​\\(ou son équivalent ''​. ~/​.bashrc''​):​\\ ​ notons que cela ne fonctionne que pour faire prendre en compte un ajout dans le fichier ''​~/​.bashrc''​.\\ Si au contraire, on dé-commente une ligne de ce fichier, il faudra fermer puis ré-ouvrir le terminal pour que le changement soit effectif.
 </​note>​ </​note>​
Ligne 331: Ligne 339:
 </​code>​ </​code>​
  
-> <espace> avant le point virgule, puis antislash ​''​\'', ​accolé au point virgule ​''​;'', ​puis <retour à la ligne> (espace ou non avant la nouvelle commande).+> <key>​Espace</​key> avant le point virgule, puis antislash ​<key>\</​key> ​accolé au point virgule ​<key>;</​key> ​puis <key>​Entrée</​key> (espace ou non avant la nouvelle commande).
  
 **Merci à [[user>​captnfab]] et [[user>​LeDub]] pour cette information !** **Merci à [[user>​captnfab]] et [[user>​LeDub]] pour cette information !**
Ligne 341: Ligne 349:
 scriptx scriptx
 </​code>​ </​code>​
- +<file config retour de la commande>
-Retour : +
-<code>+
 Un nouveau script toto ? Son nom :  Un nouveau script toto ? Son nom : 
-</code>+</file>
  
 >Lors de l'​exécution de ce script, la chaîne que vous entrerez pour répondre à la question, sera le nom du nouveau script que vous voulez créer. >Lors de l'​exécution de ce script, la chaîne que vous entrerez pour répondre à la question, sera le nom du nouveau script que vous voulez créer.
Ligne 355: Ligne 361:
 On peut éditer ce dernier, et y ajouter ​ On peut éditer ce dernier, et y ajouter ​
   * soit cette ligne : ''​PATH=$PATH":​."​ ''​   * soit cette ligne : ''​PATH=$PATH":​."​ ''​
 +
   * soit cette ligne : ''​PATH=$PATH":​$HOME/​."​ ''​   * soit cette ligne : ''​PATH=$PATH":​$HOME/​."​ ''​
  
doc/programmation/shells/debuter-avec-les-scripts-shell-bash.txt · Dernière modification: 20/08/2022 08:35 par paskal

Pied de page des forums

Propulsé par FluxBB