Я использовал это, чтобы выйти из сотен ошибочных сеансов экрана, созданных ошибочной командой:
for s in $(screen -ls|grep -o -P "1\d+.tty"); do screen -X -S $s quit; done;
где: grep -o -P "1\d+.tty"
- это команда для получения имен сеансов с Perl-подобным именем regex "1\d+.tty"
, которая захватывает все сеансы, начинающиеся с номера 1
, имеет некоторые другие числа (\d
) и заканчивается .tty
Внимание :
Сначала вы должны проверить эту команду, чтобы увидеть, какой список сеансов вы хотите получить, прежде чем применять приведенную выше команду. Это сделано для того, чтобы избежать выхода из нежелательных сессий:
for s in $(screen -ls|grep -o -P "1\d+.tty"); do echo $s; done;
Я всегда к этому echo
тесту всякий раз, когда список в цикле for
неясен, например, тот, который генерируется подкомандой в расширении $()
.