0 Votes

Modifications pour le document Bash

Modifié par john le 2026/09/20 20:12

Depuis la version 1.1
modifié par john
sur 2025/05/24 23:47
Commentaire de modification : Imported from XAR
À la version 2.1
modifié par john
sur 2026/09/20 20:12
Commentaire de modification : Il n'y a aucun commentaire pour cette version

Résumé

Détails

Propriétés de la Page
Contenu
... ... @@ -1,23 +3,24 @@
1 -= Le Bash =
2 -
3 3  {{toc/}}
4 4  
5 5  == Présentation ==
6 -**Bash** (*Bourne Again SHell*) est le shell par défaut sur la majorité des distributions GNU/Linux.
4 +
5 +**Bash** (//Bourne Again SHell//) est le shell par défaut sur la majorité des distributions GNU/Linux.
7 7  C'est à la fois un interpréteur de commandes interactif et un langage de script puissant.
8 8  
9 ----
8 +-----
10 10  
11 11  == Principes de base ==
12 -* Exécution de commandes : `ls`, `pwd`, `echo`, etc.
13 -* Variables simples : `nom="John"`
14 -* Substitution : `$(commande)` ou \`commande\`
15 -* Redirection : `>`, `>>`, `<`, `|`
16 -* Opérateurs conditionnels : `if`, `&&`, `||`
17 17  
18 ----
12 +* Exécution de commandes : ##ls##, ##pwd##, ##echo##, etc.
13 +* Variables simples : ##nom="John"##
14 +* Substitution : ##$(commande)##
15 +* Redirection : ##>##, ##>>##, ##<##, ##~|##
16 +* Opérateurs conditionnels : ##if##, ##&&##, ##~|~|##
19 19  
18 +-----
19 +
20 20  == Exemple simple ==
21 +
21 21  {{code language="bash"}}
22 22  #!/bin/bash
23 23  
... ... @@ -25,45 +25,68 @@
25 25  echo "Aujourd'hui nous sommes le $(date)"
26 26  {{/code}}
27 27  
28 ----
29 +-----
29 29  
30 30  == Scripts Bash ==
31 -Un script Bash est un fichier texte commençant par `#!/bin/bash`. Il est exécutable et permet d'automatiser des tâches.
32 32  
33 -* Donner les droits : `chmod +x monscript.sh`
34 -* Lancer : `./monscript.sh`
33 +Un script Bash est un fichier texte commençant par ###!/bin/bash##. Il est exécutable et permet d'automatiser des tâches.
35 35  
36 ----
35 +* Donner les droits : ##chmod +x monscript.sh##
36 +* Lancer : ##./monscript.sh##
37 +* Vérifier la syntaxe sans exécuter : ##bash -n monscript.sh##
37 37  
39 +Pour un script qui fait autre chose qu'afficher du texte, commencer par le mode strict :
40 +
41 +{{code language="bash"}}
42 +set -euo pipefail
43 +{{/code}}
44 +
45 +* ##-e## : arrêt à la première commande en échec
46 +* ##-u## : erreur si une variable non définie est utilisée
47 +* ##-o pipefail## : un échec dans un tube n'est plus masqué
48 +
49 +-----
50 +
38 38  == Structures de contrôle ==
39 -* **if/else** :
40 - {{code language="bash"}}
41 - if [ "$USER" = "root" ]; then
42 - echo "Attention, vous êtes root !"
43 - else
44 - echo "Utilisateur normal."
45 - fi
46 - {{/code}}
47 47  
48 -* **boucles** :
49 - {{code language="bash"}}
50 - for f in *.txt; do
51 - echo "Fichier : $f"
52 - done
53 - {{/code}}
53 +**if/else** :
54 54  
55 ----
55 +{{code language="bash"}}
56 +if [ "$USER" = "root" ]; then
57 + echo "Attention, vous êtes root !"
58 +else
59 + echo "Utilisateur normal."
60 +fi
61 +{{/code}}
56 56  
63 +**Boucles** :
64 +
65 +{{code language="bash"}}
66 +for f in *.txt; do
67 + echo "Fichier : $f"
68 +done
69 +{{/code}}
70 +
71 +-----
72 +
57 57  == Fichiers de configuration ==
58 -* `~/.bashrc` : exécuté à chaque shell interactif
59 -* `~/.bash_profile` : à la connexion
60 -* `/etc/bash.bashrc` : global à tous les utilisateurs
61 61  
62 ----
75 +* ##~~/.bashrc## : exécuté à chaque shell interactif
76 +* ##~~/.bash_profile## : à la connexion
77 +* ##/etc/bash.bashrc## : global à tous les utilisateurs
63 63  
79 +Voir aussi [[Oh My Bash>>doc:Wiki Batcave John.Infrastructure.Oh My Bash.WebHome]], utilisé sur le serveur principal.
80 +
81 +-----
82 +
64 64  == Liens internes ==
65 -* [[Retour à la section Tutos Linux>>Wiki Batcave John.TutosLinux]]
66 66  
85 +* [[Retour à la section Tutos Linux>>doc:Wiki Batcave John.TutosLinux.WebHome]]
86 +* [[Variables d’environnement>>doc:Wiki Batcave John.TutosLinux.Variables.WebHome]]
87 +* [[Raccourcis Bash>>doc:Wiki Batcave John.TutosLinux.Raccourcis.WebHome]]
88 +* [[Scripts perso>>doc:Wiki Batcave John.TutosLinux.ScriptsPerso.WebHome]]
89 +
67 67  == Ressources externes ==
68 -* [Advanced Bash Scripting Guide](https://tldp.org/LDP/abs/html/)
69 69  
92 +* [[Advanced Bash Scripting Guide>>https://tldp.org/LDP/abs/html/]]
93 +* [[ShellCheck>>https://www.shellcheck.net]]