Tmux: Как сделать новое окно оставаться, когда начинает увольнять Shell-Command?

StackOverflow https://stackoverflow.com/questions/5311583

  •  24-10-2019
  •  | 
  •  

Вопрос

В командном режиме TMUX следующее создает новое окно и открывает VIM внутри:

:new-window vim

Когда вы бросаете Vim, окно также закрыто. Есть ли способ сделать это?

Это было полезно?

Решение

tmux имеет вариант для этого: remain-on-exit:

tmux set remain-on-exit on

Другие советы

Я понимаю, что это давно мертвый вопрос. Но я недавно пользователь TMUX, и у меня был такой же вопрос. Оказывается, вы можете сделать это:

tmux new-session bash -l 

Это дает вам окно Bash (оболочка входа в систему). Затем запустите все команды, которые вы хотите. Когда они закончат, они возвращаются в командную строку, как вы ожидаете. Я думаю, что многие люди ищут интерактивное «экрановое» поведение. Это простой способ сделать это.

Я использую Send-Keys так, чтобы она «типа» вводила команду в оболочку. Вот мой get.all сценарий, который запускает много команд, с некоторыми из которых мне может понадобиться взаимодействовать после того, как они закончат (и те, которые у меня нет, есть exit):

#!/bin/sh
tmux att -t get ||
tmux \
  new -s get -n emacs \; \
  send-keys 'get.emacs' C-m \; \
  neww -n git \; \
  send-keys 'get.git' C-m \; \
  neww -n mini \; \
  send-keys 'get.mini' C-m \; \
  neww -n port \; \
  send-keys 'get.port' C-m \; \
  neww -n rakudo \; \
  send-keys 'get.rakudo' C-m \; \
  neww -n neil \; \
  send-keys 'get.neil && get.neil2 && exit' C-m \; \
  neww -n red \; \
  send-keys 'get.red && exit' C-m \; \
  neww -n cpan \; \
  send-keys 'get.cpan && exit' C-m \; \
  selectw -t emacs

Двигая хороший комментарий @jo так, как на отдельный ответ.

Эта команда падает на оболочку однажды первой ls -la Заканчивается: tmux new-window "/bin/sh -c 'ls -la; exec bash'"

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top