0 Votes

Code source wiki de Bash

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

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