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 [20/06/2014 07:31]
Hypathie [Comment créer et exécuter un script ?]
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [08/07/2014 12:52]
Hypathie [Comment créer et exécuter un script ?]
Ligne 4: Ligne 4:
   * 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 : {{tag>​à-placer}}
-    * Création par **Hypathie** 18/03/2014+    * Création par [[user>Hypathie]] 18/03/2014
     * Testé par <​Hypathie>​ le <Juin 2014>     * Testé par <​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 : wiki n°1**\\ +**Nota : Les autres ​wiki :** 
-**Les autres ​numéros ​:** +  * [[atelier:​chantier:​script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]] 
-  * wiki n°2 : [[atelier:​chantier:​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]] 
-  * wiki n°3 : [[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]] 
-  * wiki n°4 : [[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]] 
-  * wiki n°5 : [[atelier:​chantier:​script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]] +  * [[atelier:​chantier:​script-bash-les-tableaux|script-bash-les-tableaux]] 
-  * wiki n°6 : [[atelier:​chantier:​script-bash-les-tableaux|script-bash-les-tableaux]] +  * [[atelier:​chantier:​script-bash-les-fonctions|script-bash-les-fonctions]]
-  * wiki n°7 : [[atelier:​chantier:​script-bash-les-fonctions|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 28: Ligne 27:
  
   * 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ésumer ​: [[atelier:​chantier:​la-page-man-bash-les-caracteres-speciaux#​les-caracteres-symboliques|caractères symboliques]]+  * un résumé ​: [[atelier:​chantier:​la-page-man-bash-les-caracteres-speciaux#​les-caracteres-symboliques|caractères symboliques]]
  
  
Ligne 49: Ligne 48:
 Un lien indispensable en anglais : [[http://​hyperpolyglot.org/​shell]]\\ ​ Un lien indispensable en anglais : [[http://​hyperpolyglot.org/​shell]]\\ ​
 Les spécifications posix sont disponibles sur le site : [[http://​pubs.opengroup.org/​onlinepubs/​007904975/​toc.htm]] \\  Les spécifications posix sont disponibles sur le site : [[http://​pubs.opengroup.org/​onlinepubs/​007904975/​toc.htm]] \\ 
-Pour décortiquer les bashismes : http://​rgeissert.blogspot.fr/​search/​label/​bashisms **Merci captnfab** ^_^))\\ est un standard : +Pour décortiquer les bashismes : http://​rgeissert.blogspot.fr/​search/​label/​bashisms **Merci ​[[user>captnfab]]** ^_^))\\ est un standard : 
  
 <note tip> <note tip>
Ligne 67: Ligne 66:
  
 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.via.ecp.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 88: Ligne 87:
 | format octal : « \377 »                   | format hexadécimal : « \xff »        | | format octal : « \377 »                   | format hexadécimal : « \xff »        |
  
-  *Ensuite, **gare ​à la commande « echo »**, ses options ne sont pas prises en compte de la même manière selon les shell :\\ +  * Attention ​à la commande « echo », ses options ne sont pas prises en compte de la même manière selon les shell :\\ 
-    ​Éviter l’utilisation des options de commande « -e » et « -E ». +    ​Éviter l’utilisation des options de commande « -e » et « -E ». 
-    ​Éviter d’utiliser toutes les options de commandes sauf « -n ». +    ​Éviter d’utiliser toutes les options de commandes sauf « -n ». 
-    ​Éviter d’utiliser les séquences d’échappement dans les chaînes de caractères car leur prise en compte varie. +    ​Éviter d’utiliser les séquences d’échappement dans les chaînes de caractères car leur prise en compte varie. 
-    ​Utilisez la commande « printf » plutôt que la commande « echo » si vous avez besoin d’intégrer des séquences d’échappement dans la chaîne de sortie.+    ​Utilisez la commande « printf » plutôt que la commande « echo » si vous avez besoin d’intégrer des séquences d’échappement dans la chaîne de sortie.
  
   * Enfin, même s'il n'est pas question pour un débutant d'​intégrer tout ce qui suit, voici les avantages et les particularités propres au shell BASH :   * Enfin, même s'il n'est pas question pour un débutant d'​intégrer tout ce qui suit, voici les avantages et les particularités propres au shell BASH :
-    ​Certaines options étendues d'​appel +    ​Certaines options étendues d'​appel 
-    ​La substitution de commandes utilisant la notation $( ) +    ​La substitution de commandes utilisant la notation $( ) 
-    ​Certaines opérations de manipulations de chaînes +    ​Certaines opérations de manipulations de chaînes 
-    ​La substitution de processus +    ​La substitution de processus 
-    ​Les commandes intégrées de Bash+    ​Les commandes intégrées de Bash
  
 Pour plus de détails sur chacun de ces points voir : [[http://​abs.traduc.org/​abs-fr/​ch36s09.html|Guide avancé d'​écriture des scripts Bash :36.9. Problèmes de portabilité]] Pour plus de détails sur chacun de ces points voir : [[http://​abs.traduc.org/​abs-fr/​ch36s09.html|Guide avancé d'​écriture des scripts Bash :36.9. Problèmes de portabilité]]
  
-Il s'agit là plutôt d'un aboutissement,​ essayons d'​acquérir par des exemples très simples, les connaissances de bases qui permettront de comprendre chacun de ces points, ainsi que ce que l'on trouve ici : [[doc:​programmation:​shell:​scripts]]+Il s'agit là plutôt d'un aboutissement,​ essayons d'​acquérir par des exemples très simples, les connaissances de bases qui permettront de comprendre chacun de ces points, ainsi que ce que l'on trouve ici : [[doc:​programmation:​shell:​scripts]] ​8-)
 ===== Comment créer et exécuter un script ?===== ===== Comment créer et exécuter un script ?=====
 Il y a différentes méthodes pour lancer ses scripts, cela dépend, vous l'​aurez compris, du répertoire dans lequel sont placés ses scripts. Il y a différentes méthodes pour lancer ses scripts, cela dépend, vous l'​aurez compris, du répertoire dans lequel sont placés ses scripts.
Ligne 137: Ligne 136:
   * Pour exécuter ce script il suffit d'​inscrire **bash nom-du-script** dans un terminal (tel qu'une commande).\\   * Pour exécuter ce script il suffit d'​inscrire **bash nom-du-script** dans un terminal (tel qu'une commande).\\
 <note important>​ <note important>​
-ATTENTION ​il faut penser à se déplacer dans le répertoire parent de ce script avant de lancer l'​exécution.+Attention, ​il faut penser à se déplacer dans le répertoire parent de ce script avant de lancer l'​exécution.
 </​note>​ </​note>​
  
Ligne 153: Ligne 152:
 </​code>​ </​code>​
 La commande echo est une commande interne du shell ; la commande /bin/echo est une commande à part.\\ La commande echo est une commande interne du shell ; la commande /bin/echo est une commande à part.\\
-**merci captnfab** 8-)+**merci ​[[user>captnfab]]** 8-)
 </​note>​ </​note>​
  
 Essayez maintenant : Essayez maintenant :
-<​code>​+<​code ​user>
 bash --posix mon-script bash --posix mon-script
 </​code> ​ </​code> ​
Ligne 165: Ligne 164:
  
 ====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>​
 #​!/​bin/​bash ​ #​!/​bin/​bash ​
 ls /​home/​utilisateur ls /​home/​utilisateur
 </​code>​ </​code>​
-  ​* **Vous pouvez maintenant exécuter le fichier exécutable "​mon-script"​ en faisant :**+  * Vous pouvez maintenant exécuter le fichier exécutable "​mon-script"​ en faisant :
 <code user> <code user>
 ./​mon-script ./​mon-script
Ligne 183: Ligne 182:
 À voir : [[atelier:​chantier:​la-page-man-bash-les-caracteres-speciaux#​modifier-durablement-la-valeur-de-la-variable-d-environnement-path]] ​ À voir : [[atelier:​chantier:​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+  * 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) ( c'​est-à-dire dans l'un des répertoires /bin, /usr/bin ou /​usr/​local/​bin)
  
Ligne 197: Ligne 196:
 </​code> ​ </​code> ​
  
-  * Puis éditons ~/​.bashrc ​pour y ajouter :+  * Puis éditons ~/​.bashrc ​
  
 <code user> <code user>
Ligne 203: Ligne 202:
 </​code>​ </​code>​
  
 +  * Pour y ajouter, en dernière ligne :
 <​code>​ <​code>​
 PATH=$PATH":​$HOME/​MesScripts"​ PATH=$PATH":​$HOME/​MesScripts"​
Ligne 216: Ligne 216:
 echo "​Coucou tout le monde !" echo "​Coucou tout le monde !"
 </​code>​ </​code>​
 +>Il s'agit là du contenu du fichier "​mon-script"​.
  
   * Donnons à "​mon-script"​ les droits d'​exécution :   * Donnons à "​mon-script"​ les droits d'​exécution :
Ligne 229: Ligne 230:
 </​code>​ </​code>​
  
-  * ré-initialiser son terminal +  * Relancer Bash 
 +<code user> 
 +source ~/.bashrc 
 +</​code>​ 
 +ou un équivalent : 
 +<code user> 
 +. ~/.bashrc 
 +</​code>​
 Et voilà pour exécuter son script, il suffit de tapez dans le terminal le nom de son script ! Et voilà pour exécuter son script, il suffit de tapez dans le terminal le nom de son script !
 (Voir exemple ci-dessous : "Un petit script pour lancer un script depuis n'​importe où !") (Voir exemple ci-dessous : "Un petit script pour lancer un script depuis n'​importe où !")
Ligne 272: Ligne 279:
 Pas d'​inquiétude si vous ne comprenez pas tout ; vous en en serez capable après avoir suivi ce wiki et consulté ses liens. ;-) Pas d'​inquiétude si vous ne comprenez pas tout ; vous en en serez capable après avoir suivi ce wiki et consulté ses liens. ;-)
 Il faut : Il faut :
-  -avoir créé un fichier de type répertoire (ex: MesScripts) ; +  - avoir créé un fichier de type répertoire (ex: MesScripts) ; 
-  -avoir modifié le fichier ~/.bashrc pour ajouter au PATH le chemin de son fichier de type répertoire (MesScripts) (comme ci-dessus);​ +  - avoir modifié le fichier ~/.bashrc pour ajouter au PATH le chemin de son fichier de type répertoire (MesScripts) (comme ci-dessus);​ 
-  -avoir fermé le terminal et l'​avoir ré-ouvert ;  +  - avoir fermé le terminal et l'​avoir ré-ouvert ;  
-  -avoir créé un fichier (ex: nommé ici scriptx) ; +  - avoir créé un fichier (ex: nommé ici scriptx) ; 
-  -avoir donné à l'​utilisateur les droit d'​exécution sur "​scriptx"​ ; +  - avoir donné à l'​utilisateur les droit d'​exécution sur "​scriptx"​ ; 
-  -avoir placé "​scriptx dans le répertoire MesScripts"​ ; +  - avoir placé "​scriptx dans le répertoire MesScripts"​ ; 
-  -ouvrez ce fichier "​scriptx"​ et collez-y le code ci-dessous ; +  - ouvrez ce fichier "​scriptx"​ et collez-y le code ci-dessous ; 
-  -enregistrez et lancez-le depuis un terminal.+  - enregistrez et lancez-le depuis un terminal.
  
 <code bash> <code bash>
Ligne 302: Ligne 309:
 (espace avant le point virgule puis antislash accolé au point virgule puis retour à la ligne (espace ou non avant la nouvelle commande.) (espace avant le point virgule puis antislash accolé au point virgule puis retour à la ligne (espace ou non avant la nouvelle commande.)
  
-**Merci à captnfab et LeDub pour cette information !**+**Merci à [[user>captnfab]] et [[user>LeDub]] pour cette information !**
 </​note>​ </​note>​
  
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