当一个窗口分离时如何关闭所有 tmux 窗口?

当一个窗口分离时如何关闭所有 tmux 窗口?

我有以下代码:

#!/bin/bash

tmux new-session \; \
  send-keys 'ls' C-m \; \
  split-window -h \; \
  send-keys 'ls' C-m \; 

当我运行这个脚本时,我得到两个窗口。当我想关闭所有内容时,我必须按Ctrl+D两次,一次为右侧窗格,另一次为左侧窗格。

如何确保Ctrl+D按下时两个窗口都会自动关闭?

我看了看,trap()但我不确定如何Ctrl+D从窗户内捕获它

答案1

向分割窗口发送陷阱似乎有效:

function close_tmux
{
    tmux kill-server &> /dev/null
}
trap close_tmux EXIT

tmux new-session \; \
  send-keys 'ls' C-m \; \
  split-window -h \; \
  send-keys 'ls; function close_tmux { tmux kill-server ; }; trap close_tmux EXIT' C-m \; \

相关内容