Як вийти з нескінченного циклу в батьківському терміналі?


1

Перевіряти trap Команда я створив наступний цикл у терміналі:

while true ; do echo BEGIN ; bash -e ; echo "exit code = $?" ; echo END ; done

Як вийти з цього циклу і повернути назад до батьківської оболонки?

У разі використання віддаленої оболонки ( ssh ) замість bash є затримка під час встановлення з'єднання, коли я можу натиснути Ctrl + C . Але в наведеному вище випадку я не можу бути досить швидким, щоб уловлювати тимчасове вікно.

Відповіді:


2

У цьому випадку вихід з дочірньої оболонки призводить до появи іншої дитячої оболонки. Щоб розірвати цикл, виконайте це з дитячої оболонки:

kill -s SIGINT $PPID

Потім вийдіть з дитячого оболонки ( exit або Ctrl + D ). $PPID забезпечує отримання сигналу до батьківської оболонки (без відтворення ps і вгадування).


SIGINT є Ctrl + C?
Orient

@Orient. Так. Подивитися це питання .
Kamil Maciorowski
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.