Comment suspendre un script source dans bash?

1

Lorsque j'exécute un processus dans Bash, je peux le suspendre avec Ctrl-Z, mais cela ne semble pas fonctionner pour les scripts sourced ( . foo.sh ). Existe-t-il un moyen de suspendre de tels scripts?

Tgr
la source

Réponses:

1

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.

RedGrittyBrick
la source
En effet, Ctrl-Z suspend un processus en utilisant SIGSTOP. Les scripts sourced s'exécutent dans le processus principal du shell et ne peuvent pas être suspendus en tant qu'unité.
grawity