Answers:
您有两种选择。
而不是ls
在窗口中运行,而是运行一个Shell,然后发送Shell击键执行:
tmux start-server
tmux new-session -d -s session
tmux new-window -t session:1
tmux send-keys -t session:1 ls C-m
您可以在一系列命令中吃午餐,以便在其他命令运行后不使用bash shell:
tmux start-server
tmux new-session -d
tmux new-window 'ls;bash -i'
请参阅jasonwryan的答案,以获取有关在remain-on-exit
退出窗格后使窗格保持活动状态的选项的详细信息,以便您可以查看输出。
如果某个命令的输出值得一看,那么可能值得刷新。如果您正在监视某些内容的输出,则可以watch
定期获取新的输出。这在tmux
以下窗格中应该可以很好地发挥作用:
tmux start-server
tmux new-session -d
tmux new-window 'watch -n 60 ls'
start-server
命令的情况下为我工作,我认为它会在需要时自动启动。仍然显式调用它有好处吗?
tmux
自从我写了这个答案以来,如果没有找到自动启动服务器,可能已经添加了。我不知道您的版本是否在必要时生成服务器进程有任何优势。
您可以使用以下remain-on-exit
选项:
保持退出[on | [off]
设置了此标志的窗口在运行中的程序退出时不会被破坏。可以使用respawn-window命令重新激活该窗口。
为了简化重生过程,您可能需要将其绑定到键:
bind-key R respawn-window
这样可以确保程序退出时不会死窗。
tmux set-option remain-on-exit on
set-option -g remain-on-exit on
bind-key r respawn-pane
这是使用send-keys
@Caleb推荐的方法的扩展示例
#!/bin/sh
tmux start-server
tmux new-session -d -n 'mywindowname'
tmux send-keys -t mywindowname 'cd notes' Enter 'vim whiteboard/tasks.md' Enter
tmux new-window -d -n 'secondwindowname' # this -d prevents focus from changing to the new window
tmux -2 attach-session -d