0 Votes

Code source wiki de Bash

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

Afficher les derniers auteurs
1 {{toc/}}
2
3 == Présentation ==
4
5 **Bash** (//Bourne Again SHell//) est le shell par défaut sur la majorité des distributions GNU/Linux.
6 C'est à la fois un interpréteur de commandes interactif et un langage de script puissant.
7
8 -----
9
10 == Principes de base ==
11
12 * Exécution de commandes : ##ls##, ##pwd##, ##echo##, etc.
13 * Variables simples : ##nom="John"##
14 * Substitution : ##$(commande)##
15 * Redirection : ##>##, ##>>##, ##<##, ##~|##
16 * Opérateurs conditionnels : ##if##, ##&&##, ##~|~|##
17
18 -----
19
20 == Exemple simple ==
21
22 {{code language="bash"}}
23 #!/bin/bash
24
25 echo "Bonjour $USER"
26 echo "Aujourd'hui nous sommes le $(date)"
27 {{/code}}
28
29 -----
30
31 == Scripts Bash ==
32
33 Un script Bash est un fichier texte commençant par ###!/bin/bash##. Il est exécutable et permet d'automatiser des tâches.
34
35 * Donner les droits : ##chmod +x monscript.sh##
36 * Lancer : ##./monscript.sh##
37 * Vérifier la syntaxe sans exécuter : ##bash -n monscript.sh##
38
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
51 == Structures de contrôle ==
52
53 **if/else** :
54
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}}
62
63 **Boucles** :
64
65 {{code language="bash"}}
66 for f in *.txt; do
67 echo "Fichier : $f"
68 done
69 {{/code}}
70
71 -----
72
73 == Fichiers de configuration ==
74
75 * ##~~/.bashrc## : exécuté à chaque shell interactif
76 * ##~~/.bash_profile## : à la connexion
77 * ##/etc/bash.bashrc## : global à tous les utilisateurs
78
79 Voir aussi [[Oh My Bash>>doc:Wiki Batcave John.Infrastructure.Oh My Bash.WebHome]], utilisé sur le serveur principal.
80
81 -----
82
83 == Liens internes ==
84
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
90 == Ressources externes ==
91
92 * [[Advanced Bash Scripting Guide>>https://tldp.org/LDP/abs/html/]]
93 * [[ShellCheck>>https://www.shellcheck.net]]