tmux脚本启动几个命令


21

如何在bash脚本中编写以下内容?

tmux # Start tmux session.
compass watch /path/to/project1/compass/ # Run the first process.
Ctrl + B, " # Split the pane.
compass watch /path/to/project2/compass/ # Run the second process.
Ctrl + B, D # Exit the session.

Answers:


21
tmux \
    new-session  'compass watch /path/to/project1/compass/' \; \
    split-window 'compass watch /path/to/project2/compass/' \; \
    detach-client

中的new-session命令(创建新tmux会话)和split-window命令(将当前窗口分为两个窗格)使用tmux可选的Shell命令来运行。最后detach-client做的很明显。

如果要水平分割(两个窗格并排),请split-window -h在上面的命令中使用。

发送多个tmux命令时,tmux需要用分隔它们;。在;需要通过引用/逸出它(被保护免受壳';'";"\;),为了从将其解释为所述的端部挡块的外壳tmux命令。

为了便于阅读,我将整个内容分成了几行。如果您在脚本中执行此操作(建议这样做),请确保\每行最后的内容都没有。

使用tmux atmux attach或重新连接到会话tmux attach-session(这些都等效)。

tmux一旦两个命令执行完毕,会话将结束。


3

这对我不起作用(我正在尝试执行“ ls -la”之类的操作)。什么是:

tmux new-session -d bash
tmux split-window -h bash
#sends keys to first and second terminals
tmux send -t 0:0.0 "<my-first-command>" C-m
tmux send -t 0:0.1 "<my-second-command>" C-m
tmux -2 attach-session -d

这使我可以运行通用的东西,尽管看起来很丑,但功能很强大。

如果其他人正在寻找相同的东西,就把它留在这里。

资料来源:https : //gist.github.com/kizzx2/4739236

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.