TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #129 7.53K
Привет, всем, ага. С утра разминочка, а ближе к обеду про более серьезные вещи поговорим.

Наверняка ты знаешь, что при нажатии сочетания клавиш CTRL+D завершится текущая интерактивная оболочка. То есть если ты сидишь на сервере по ssh и нажал CTRL+D, сессия прервется. ОК.

При нажатии такого сочетания, оболочка при чтении устройства терминала получит признак конца файла и завершится если строка пуста. Нюанс, если в командной строке набрать какие-то символы и нажать CTRL+D, то ничего не произойдет.

Как еще можно завершить сессию с командной оболочкой? Ну например установить значение переменной TMOUT больше нуля. Цифра будет означать секунды.

# TMOUT=5

Текущая сессия закроется через 5 секунд.

Следующий вариант это активировать параметр оболочки «t» с помощью команды set.

set -t 

Выбросило! НО! Оболочка прекратит свою работу, только после того, как завершится работа запущенных команд в текущий строке. Например:

set -t ; read

Выход произойдет, только после нажатия клавиши Enter. А в примере ниже:

set -t ; read -t3

Выход будет произведен после нажатия Enter ИЛИ по прошествию 3х секунд.

Так. Еще есть вариант с параметром «e». Указав его оболочка завершает работу после возникновения ошибки. Например:

set -e ; false

Команда false ничего не делает, но завершается всегда с ошибкой. Как правило, используется при написании bash скриптов.

Более человеческий пример:

set -e ; Паравозблять

И снова выкинуло. Потому что вернулась ошибка - Паравозблять: command not found.

Что еще упустили…
Упустили команду exec. Подвешиваем на стандартный ввод устройство /dev/null.

exec </dev/null

При чтении этого устройства оболочка получит признак конца файла и успешно завершится.

Ааа, еще же exit есть. Не буду его обижать, пусть тоже в этом посте присутствует.

Ну и как обычно, на закуску.

stty eof $'\t'

Ёпта, что это? Это хак. После выполнения этой команды у тебя появится возможность закрыть текущую оболочку по нажатию на клавишу TAB. Ввод символа табуляции, посылает сигнал конца файла и оболочка прекращает свою работу.

stty (Set Teletype) - Эта команда управляет настройками терминала и позволяет пользователю вносить изменения в терминал и отображать его характеристики.

Всё, стоп! После обеда покажу, как с помощью strace можно инжектить в системные вызовы процессов для отладки некоторых ёбнутых случаев. Увидимся!

tags: #bash #linux
—
💩 @bashdays
  • 👍 117
More from @bashdays
  1. Sep 29, 2026Самый жаркий холивар в команде — это не systemd, а какие заказать роллы на всю команду. Од…
  2. Sep 24, 2026Post #1565
  3. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  4. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
  5. Sep 15, 2026Всем привет, с вами TagdTagd. И это вторая часть. Практическая. С первой частью можешь озн…
  6. Sep 9, 2026Всем привет, с вами TagdTagd! Я тут вынужденно перешёл на MAX. Просто Telegram перестал ра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →