14.10. Appels de fonctions dispersées dans plusieurs fichiers

Lorsque les fonctions d’un programme shell sont placées dans différents fichiers, on exécute ces derniers dans l’environnement du fichier shell « principal ». Cela revient à exécuter plusieurs fichiers shell dans un même environnement.

Dans l’exemple ci-dessous, pour que la fonction f définie dans le fichier def_f puisse être accessible depuis le fichier shell appel, on exécute def_f dans l’environnement de appel (en utilisant la commande interne source ou .). Seule la permission lecture est nécessaire pour def_f.

appel
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	#!/bin/bash

	source def_f   # ou plus court : . def_f
	               # Permissions de def_f : r--r--r—

	x=2
	f              # appel de la fonction f contenue dans def_f
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

def_f
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	#!/bin/bash

	function f()
	{
	echo $((x+2))
	}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

$ appel
4
$