Выход из цикла while на консоли

Я решил проблему, добавив следующий код в /etc/asound.conf

pcm.custom
{
    type plug
    slave
    {
        pcm "dmix:0,0"
    }
}

pcm.!default pcm.custom
2
20.04.2019, 22:09
3 ответа

Вы можете отменить цикл с помощью:CTRL + C

Ваш сеанс должен был завершиться при закрытии сеанса шпатлевки, поэтому цикл больше не будет выполняться

  • , если только он не работал в сеансе экрана или аналогичном, и в этом случае вам придется повторно подключить его, используя метод этой конкретной программы.
3
27.01.2020, 21:55

Иногда нажатие на элемент управления -c не работает :тело цикла получает элемент управления -c, и цикл продолжает повторяться. (Хотя я не могу воспроизвести это поведение прямо сейчас с sleep 1в качестве условия цикла или тела, я помню, что видел это.)

control -z может остановить это, и цикл не возобновится после fg, если только цикл не был внутри подоболочки, такой как (while true;do : ;done). (С bashв GNU/Linux ).

Или управление -z / fgполезно, если вы хотите, чтобы текущая -итерация цикла завершалась чисто, но не начиналась другая итерация.

(Элемент управления -z останавливает задание, заставляя ядро ​​доставлять SIGTSTP точно так же, как элемент управления -c доставляет SIGINT на TTY, который не находится в режиме RAW. Действие по умолчанию для этого сигнала — остановить задание. fgи bgявляются командами управления заданиями -, см. встроенный bash -в «справке» для них и команду jobs.)

2
27.01.2020, 21:55

Учитывая правильное замечание @PeterCordes о том, что Ctrl -C работает не всегда, я иногда использую решение, чтобы не делать цикл бесконечным. Вместо этого я часто пишу:

while sleep 1; do...; done

Если эта задержка в одну -секунду слишком велика для замедления, например, когда вы хотите зациклиться как можно быстрее, тогда обусловьте цикл whileналичием файла семафора:

touch /tmp/ENABLE-LOOP-FILE
while [ -f '/tmp/ENABLE-LOOP-FILE' ]; do...; done

Когда вам нужно убить цикл, перейдите в другую терминальную сессию и удалите файл:

rm /tmp/ENABLE-LOOP-FILE
1
27.01.2020, 21:55

Теги

Похожие вопросы