나는 열심히 노력했다
tmux -c "shell command" split-window
하지만 작동하지 않는 것 같습니다.
tmux split-window
새 창을 분할하는 데 사용합니다 .
고쳐 쓰다:
을 사용하면 tmux split-window 'exec ping g.cn'
ping 명령을 실행할 수 있지만 중지되면 새 창이 닫힙니다.
답변1
사용:
tmux split-window "shell command"
명령 split-window
의 구문은 다음과 같습니다.
split-window [-dhvP] [-c start-directory] [-l size | -p percentage] [-t target-pane] [shell-command] [-F format]
(에서man tmux
, "창 및 창" 섹션). 순서가 중요합니다. 명령이 와야 합니다.뒤쪽에나타나는 이전 옵션은 단일 인수여야 하므로 공백이 있는 경우 인용해야 합니다.
이와 같이 빠르게 종료되는 명령의 경우 옵션을 먼저 설정할 ping -c
수 있습니다 .remain-on-exit
tmux set-option remain-on-exit on
tmux split-window 'ping -c 3 127.0.0.1'
창은 완료 후에도 열린 상태로 유지되지만 ping
수동으로 닫을 때까지 "죽음"으로 표시됩니다.
전체 옵션을 변경하고 싶지 않다면 다른 방법이 있습니다. 이 명령은 sh -c
마지막에 창을 활성 상태로 유지하는 데 활용할 수 있는 run 을 사용합니다.
tmux split-window 'ping -c 3 127.0.0.1 ; read'
여기에는 쉘이 사용됩니다.read
이 명령은 주 명령이 완료된 후 사용자가 개행 문자를 입력할 때까지 기다립니다. 이 경우 명령 출력은 Enter창을 누를 때까지 유지되다가 자동으로 닫힙니다.
답변2
bash --rcfile
이 기술은 새 셸을 열고 명령을 실행한 후 명령이 완료된 후 그대로 유지됩니다.
tmux-split-cmd() ( tmux split-window -dh -t $TMUX_PANE "bash --rcfile <(echo '. ~/.bashrc;$*')" )
tmux-split-cmd 'cd; pwd; ping google.com'
또는 명령에 특수 터미널 문자가 없는 경우(예 ;
:
tmux-split-cmd ping google.com
이는 다음을 사용합니다:
--rcfile
:Bash를 호출하고 새 셸에서 명령을 실행한 다음 사용자에게 제어권을 다시 제공하려면 어떻게 해야 합니까? |스택 오버플로TMUX_PANE
:현재 창 대신 "tmux Split-window" 명령을 실행하여 창을 분할하는 방법은 무엇입니까?
또 다른 흥미로운 변형은 다음과 같습니다.
tmux-split-cmd-uniq() (
if [ "$(tmux list-panes | wc -l | cut -d' ' -f1)" -ne 1 ]; then
tmux kill-pane -t 1
fi
tms "$@"
)
이미 존재하는 경우 이전 분할을 종료하고 항상 추가 분할을 하나만 유지하는 데 도움이 됩니다.
답변3
내가 제안 할게
tmux split-window
tmux send "ping -c 3 127.0.0.1" ENTER
이점은 새 창이 항상 활성화되고 절대 닫히지 않는 반면, 이전 답변은 tmux split-window 'ping -c 3 127.0.0.1 ; read'
사용자가 를 누른 후 세션을 닫는다는 것입니다 Enter.