<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Bash_%3A_Fonctions</id>
	<title>Bash : Fonctions - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Bash_%3A_Fonctions"/>
	<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Bash_:_Fonctions&amp;action=history"/>
	<updated>2026-06-12T03:36:48Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Bash_:_Fonctions&amp;diff=2252&amp;oldid=prev</id>
		<title>Justine le 22 juin 2022 à 12:08</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Bash_:_Fonctions&amp;diff=2252&amp;oldid=prev"/>
		<updated>2022-06-22T12:08:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 22 juin 2022 à 12:08&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:prog]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:bash]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Généralités =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Généralités =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-mediawiki:diff:1.41:old-777:rev-2252:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Bash_:_Fonctions&amp;diff=777&amp;oldid=prev</id>
		<title>Justine : Page créée avec «  = Généralités =  == Utilisation ==  Une définition de fonction peut se trouver n&#039;importe où dans un script BASH. La seule restriction est que cette définition soit... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Bash_:_Fonctions&amp;diff=777&amp;oldid=prev"/>
		<updated>2019-03-11T19:39:33Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec «  = Généralités =  == Utilisation ==  Une définition de fonction peut se trouver n&amp;#039;importe où dans un script BASH. La seule restriction est que cette définition soit... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= Généralités =&lt;br /&gt;
&lt;br /&gt;
== Utilisation ==&lt;br /&gt;
&lt;br /&gt;
Une définition de fonction peut se trouver n&amp;#039;importe où dans un script BASH. La seule restriction est que cette définition soit faite avant son appel.&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Déclaration de la fonction&lt;br /&gt;
function maFonction&lt;br /&gt;
{&lt;br /&gt;
    # [corps de la fonction]&lt;br /&gt;
}&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
# Appel de la fonction après sa définition&lt;br /&gt;
maFonction&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;éxecution d&amp;#039;une fonction se fait dans l&amp;#039;environnement courant, autorisant ainsi le partage de variables. L&amp;#039;initialisation des variables doit se faire avant l&amp;#039;appel.&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Définition d&amp;#039;une variable dans l&amp;#039;environnement courant&lt;br /&gt;
stMessage1=&amp;quot;Bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
function fctBonjourQui&lt;br /&gt;
{&lt;br /&gt;
    # Évaluation des variables&lt;br /&gt;
    echo $stMessage1 $stMessage2 $stMessage3&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Définition d&amp;#039;une variable après la définition mais avant l&amp;#039;appel&lt;br /&gt;
stMessage2=&amp;quot;tout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Appel de la fonction&lt;br /&gt;
fctBonjourQui&lt;br /&gt;
&lt;br /&gt;
# Définition d&amp;#039;une variable après l&amp;#039;appel&lt;br /&gt;
stMessage3=&amp;quot;le monde&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si j&amp;#039;exécute ce script, je peux ensuite ma fonction depuis la console :&lt;br /&gt;
&amp;lt;pre&amp;gt;BASH $&amp;gt; ./fonction.sh&lt;br /&gt;
&lt;br /&gt;
Bonjour tout&lt;br /&gt;
&lt;br /&gt;
BASH $&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notion fondamentale ==&lt;br /&gt;
&lt;br /&gt;
Le code s&amp;#039;exécute de manière séquentielle, ce qui induit deux choses :&lt;br /&gt;
&lt;br /&gt;
*Toutes les variables de l&amp;#039;environnement courant définies avant l&amp;#039;appel d&amp;#039;une fonction seront utilisables dans celle-ci &lt;br /&gt;
*Les fonctions doivent être définies avant leur appel. &lt;br /&gt;
&lt;br /&gt;
== Les arguments ==&lt;br /&gt;
&lt;br /&gt;
Les arguments d&amp;#039;une fonction sont référencés dans son corps de la même manière que les paramètres de position. Dans l&amp;#039;exemple ci-dessous, le script affectera le premier et unique paramètre, à la position 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
function fctBonjourQui&lt;br /&gt;
{&lt;br /&gt;
    # Évaluation des arguments passés en paramètre&lt;br /&gt;
    echo &amp;quot;Bonjour&amp;quot; $1 &amp;quot;dans&amp;quot; $0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Avant l&amp;#039;appel&lt;br /&gt;
echo -e &amp;quot;Avant l&amp;#039;appel \$1 vaut&amp;quot; $1&lt;br /&gt;
&lt;br /&gt;
# Appel de la fonction avec un argument en paramètre&lt;br /&gt;
fctBonjourQui &amp;quot;tout le monde&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Après l&amp;#039;appel&lt;br /&gt;
echo -e &amp;quot;Après l&amp;#039;appel \$1 vaut&amp;quot; $1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui donne dans la console :&lt;br /&gt;
&amp;lt;pre&amp;gt;BASH $&amp;gt; ./fonctionParam.sh paramPerso&lt;br /&gt;
&lt;br /&gt;
Avant l&amp;#039;appel $1 vaut paramPerso&lt;br /&gt;
&lt;br /&gt;
Bonjour tout le monde dans ./fonctionParam.sh&lt;br /&gt;
&lt;br /&gt;
Après l&amp;#039;appel $1 vaut paramPerso&lt;br /&gt;
&lt;br /&gt;
BASH $&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Les paramètres de position initialisés avant l&amp;#039;appel de la fonction sont sauvés à l&amp;#039;appel puis restaurés après l&amp;#039;appel.&lt;br /&gt;
&lt;br /&gt;
(NDA : Ça induit que l&amp;#039;on peut utiliser des paramètres par défaut?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt; &lt;br /&gt;
=== Portée des variables ===&lt;br /&gt;
&lt;br /&gt;
Par défaut, une variable définie à l&amp;#039;intérieur d&amp;#039;une fonction est globale. Pour définir une variable locale à une fonction, on utilise la commande interne local, qui limite la portée de la variable à la fonction.&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
function fctBonjourQui&lt;br /&gt;
{&lt;br /&gt;
    local qui&lt;br /&gt;
    qui=&amp;quot;tout le monde&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Appel de la fonction&lt;br /&gt;
fctBonjourQui&lt;br /&gt;
&lt;br /&gt;
# Évaluation de la variable (locale à la fonction)&lt;br /&gt;
echo $qui&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ici, l&amp;#039;appel de ce script depuis la console ne renvoie rien : en effet, la variable qui étant locale, la dernière instruction demande l&amp;#039;affichage du contenu d&amp;#039;une variable qui n&amp;#039;existe pas.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
</feed>