Отключиться от сеанса tmux и закрыть сеанс ssh с помощью 1 команды

Прокрутите имена файлов, извлеките префикс (строку перед первым_)и проверьте, сколько файлов начинается с этого префикса (Я использовал set, но вы также можете использовать массив и проверить его длина ).
Если он только один, выведите его имя:

for f in./*.txt; do
n=${f%%_*}
set -- "${n}"_*
[ $# -eq 1 ] && printf '%s\n' "${f}"
done
set --
1
15.10.2019, 11:00
3 ответа

Вы можете использовать tmux detach -P.

Или используйте~. для выхода из ssh (, который отключит tmux, поскольку его tty исчезнет ).

6
27.01.2020, 23:17

Вместо того, чтобы автоматизировать отключение, я бы изменил соединение. Я предполагаю, что вы в настоящее время подключаетесь с помощью SSH, а затем запускаете tmux attach; если вы объедините оба шага,

 ssh -t user@host tmux attach

сеанс SSH привязывается ко времени существования присоединяемого процесса tmux, а не к начальной оболочке, а отсоединение от tmuxавтоматически закрывает соединение SSH.

3
27.01.2020, 23:17

Если ваша настройка не слишком странная, вы можете прервать соединение SSH с помощью Enter~.(все отдельные нажатия клавиш ). Сеанс tmuxдолжен стать отсоединенным (, как и при любом другом отключении SSH ).

2
27.01.2020, 23:17

Теги

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