Réponses:
Lorsque vous sourcez foo.sh, Ctrl + Z (SUSP) arrête simplement la commande en cours d'exécution dans foo.sh et le shell continuent allègrement avec la commande suivante dans foo.sh.
Je ne pense pas qu'il y ait moyen de contourner cela. Si vous voulez pouvoir suspendre l'intégralité de foo.sh, vous devez l'exécuter en tant que sous-processus en l'invoquant en tant que commande et non en le recherchant.