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 $