Прокрутите имена файлов, извлеките префикс (строку перед первым_
)и проверьте, сколько файлов начинается с этого префикса (Я использовал set
, но вы также можете использовать массив и проверить его длина ).
Если он только один, выведите его имя:
for f in./*.txt; do
n=${f%%_*}
set -- "${n}"_*
[ $# -eq 1 ] && printf '%s\n' "${f}"
done
set --
Вы можете использовать tmux detach -P
.
Или используйте~. для выхода из ssh (, который отключит tmux, поскольку его tty исчезнет ).
Вместо того, чтобы автоматизировать отключение, я бы изменил соединение. Я предполагаю, что вы в настоящее время подключаетесь с помощью SSH, а затем запускаете tmux attach
; если вы объедините оба шага,
ssh -t user@host tmux attach
сеанс SSH привязывается ко времени существования присоединяемого процесса tmux
, а не к начальной оболочке, а отсоединение от tmux
автоматически закрывает соединение SSH.
Если ваша настройка не слишком странная, вы можете прервать соединение SSH с помощью Enter~.(все отдельные нажатия клавиш ). Сеанс tmux
должен стать отсоединенным (, как и при любом другом отключении SSH ).