Как приостановить исходный скрипт в bash?

383
Tgr

Когда я запускаю процесс в Bash, я могу приостановить его с помощью Ctrl-Z, но это не похоже на работу с исходными сценариями ( . foo.sh). Есть ли способ приостановить такие сценарии?

1

1 ответ на вопрос

1
RedGrittyBrick

Когда вы используете исходный код foo.sh, Ctrl + Z (SUSP) просто останавливает выполняющуюся в данный момент команду в foo.sh, и оболочка беспечно продолжает выполнение следующей команды в foo.sh.

Я не думаю, что есть способ обойти это. Если вы хотите иметь возможность приостановить весь файл foo.sh, вы должны запустить его как подпроцесс, вызывая его как команду, а не используя его.

Действительно, Ctrl-Z приостанавливает ** процесс **, используя SIGSTOP. Исходные сценарии выполняются в основном процессе оболочки и не могут быть приостановлены как единое целое. grawity 12 лет назад 0