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.

        #!/bin/bash
	#	@(#)	appel

        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

        #!/bin/bash
	#	@(#)	def_f

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

$ appel
4
$