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 $