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?

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.