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:shells:debuter-avec-les-scripts-shell-bash [13/04/2015 19:36]
milou [Apprendre à rédiger des scripts sous bash]
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [20/08/2022 08:35] (Version actuelle)
paskal [Introduction : éviter les bashismes]
Ligne 2: Ligne 2:
  
   * Objet : 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 ​avisé}}
   * Commentaires : FIXME   * 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 :    * Suivi : 
-    * Création par [[user>​Hypathie]] 18/​03/​2014 +    * Création par [[user>​Hypathie]] ​le 18/​03/​2014 
-    * Testé par [[user>​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 :** 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 !
 ------ ------
  
 **Nota : Les autres wiki :** **Nota : Les autres wiki :**
   * ;-)   * ;-)
-  * [[atelier:chantier:​script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]] +  * [[doc:​programmation:shells:​script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]] 
-  * [[atelier:chantier:​script-bash-detail-sur-les-parametres-et-les-boucles|script bash : modification de variable et de paramètre]] +  * [[doc:​programmation:shells:​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]] +  * [[doc:​programmation:shells:​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-sortie-et-les-tests]] +  * [[doc:​programmation:shells:​script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sortie-et-les-tests]] 
-  * [[doc:​programmation:​bash:script:​tableaux|script-bash-les-tableaux]] +  * [[doc:​programmation:​shells:​tableaux|script-bash-les-tableaux]] 
-  * [[doc:​programmation:​bash:script:​fonction|script-bash-les-fonctions]]+  * [[doc:​programmation:​shells:​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 ! 
  
 ===== Introduction : éviter les bashismes===== ===== Introduction : éviter les bashismes=====
Ligne 31: Ligne 31:
   * [[:​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é : [[doc:programmation:​shells:​la-page-man-bash-les-caracteres-speciaux#​les-caracteres-symboliques|caractères symboliques]]
  
  
Ligne 57: Ligne 57:
 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 71: Ligne 72:
  
 Pour utiliser tcsh, ksh, ash, sh, csh, //etc// :​\\  ​ Pour utiliser tcsh, ksh, ash, sh, csh, //etc// :​\\  ​
-[[http://​formation-debian.via.ecp.fr/​shell.html]]\\+[[http://​formation-debian.viarezo.fr/​shell.html]]\\
 [[http://​marcg.developpez.com/​ksh/​|méthode d'​installation de ksh]]\\ [[http://​marcg.developpez.com/​ksh/​|méthode d'​installation de ksh]]\\
   ​   ​
Ligne 113: Ligne 114:
 </​code>​ </​code>​
  
-  ​Coucou+<file config retour de la commande>​Coucou</​file>​
  
   * Pour aller plus loin :   * Pour aller plus loin :
Ligne 139: Ligne 140:
 </​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 159: Ligne 160:
 </​code>​ </​code>​
 dans lequel on inscrit : dans lequel on inscrit :
-<​code>​+<​code ​bash mon-script>
 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 174: Ligne 176:
 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 193: Ligne 195:
 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 ====
   * Reprenons notre fichier "​mon-script"​ (avec cette fois un autre programme, celui de la commande ls par exemple).   * Reprenons notre fichier "​mon-script"​ (avec cette fois un autre programme, celui de la commande ls par exemple).
-<​code>​+<​code ​bash mon-script>
 #​!/​bin/​bash ​ #​!/​bin/​bash ​
 ls /​home/​utilisateur ls /​home/​utilisateur
Ligne 216: Ligne 218:
 ==== 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 : [[doc: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 254: Ligne 256:
   * Contenant les lignes :   * Contenant les lignes :
  
-<code bash>+<code bash mon-script>
 #!/bin/bash #!/bin/bash
 printf "yep coucou!\n"​ printf "yep coucou!\n"​
Ligne 278: Ligne 280:
 <code user> <code user>
 . ~/.bashrc . ~/.bashrc
 +</​code>​
 +
 +Ou encore
 +
 +<code user>
 +exec $SHELL
 </​code>​ </​code>​
  
Ligne 286: Ligne 294:
 </​code>​ </​code>​
  
-<​code>​+doc:​programmation:​shells:​la-page-man-bash-les-caracteres-speciaux
 yep coucou! yep coucou!
-</code>+</file>
  
 <​note>​ <​note>​
Ligne 297: Ligne 305:
 echo $PATH echo $PATH
 </​code>​ </​code>​
-<​code>​+doc:​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 318: Ligne 326:
   - enregistrez et lancez-le depuis un terminal.   - enregistrez et lancez-le depuis un terminal.
  
-<code bash>+<code bash scriptx>
 #!/bin/bash #!/bin/bash
 set -o posix set -o posix
Ligne 327: Ligne 335:
 <note tip> <note tip>
 À savoir : une suite de commandes s'​écrit de façon équivalente pour le shell ainsi : À savoir : une suite de commandes s'​écrit de façon équivalente pour le shell ainsi :
-<code bash>+<code bash script>
 #!/bin/bash #!/bin/bash
 set -o posix set -o posix
Ligne 338: Ligne 346:
 </​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 348: Ligne 356:
 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 362: Ligne 368:
 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/​."​ ''​
  
Ligne 368: Ligne 375:
  
 =====la suite c'est ici ===== =====la suite c'est ici =====
-[[atelier:chantier:​script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]]+[[doc:programmation:​shells:​script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]]
doc/programmation/shells/debuter-avec-les-scripts-shell-bash.1428946614.txt.gz · Dernière modification: 13/04/2015 19:36 par milou

Pied de page des forums

Propulsé par FluxBB