tmux 怎么用 shell 脚本操作?
#!/bin/sh #服务器要起一些程序,目前在测试阶段,所有很多组件都在前台运行 #每次都用 tmux 一个一个启动,ctrl+b c,ctrl+b c....,比较麻烦 tmux new -s testapp 执行 app01,有前台输入 新建一个窗口,执行 app02 再建一个窗口,执行 app03 ... 最后退出 这样的操作用 shell 脚本怎么写?
#!/bin/sh #服务器要起一些程序,目前在测试阶段,所有很多组件都在前台运行 #每次都用 tmux 一个一个启动,ctrl+b c,ctrl+b c....,比较麻烦 tmux new -s testapp 执行 app01,有前台输入 新建一个窗口,执行 app02 再建一个窗口,执行 app03 ... 最后退出 这样的操作用 shell 脚本怎么写?
“`shell
# new bastion session
tmux new -s bastion -d
# rename window
## — DEV —
tmux rename-window -t “bastion:1” dev
# send command
tmux send -t “bastion:dev” ‘/Users/nickchen/workspace/bastion.sh java-run “cd /home/nickchen/java-app/”‘ Enter
# split window horizontally
tmux split-window -t “bastion:dev”
tmux send -t “bastion:dev” ‘/Users/nickchen/workspace/bastion.sh inner-01 “cd /opt”‘ Enter
# split window vertically
tmux split-window -h -t “bastion:dev”
tmux send -t “bastion:dev” ‘/Users/nickchen/workspace/bastion.sh inner-02 “cd /opt”‘ Enter
“`
这是一部分啦,本质上都是一样的原理,去看下 tmux send 的操作就行,我这里是创建多个 window + 每个 window 分多个 panel 。
非用 tmux 的话,直接调 tmux sub-commands 也可以,或者用 tmuxinator 之类的
“`
参考
功能介召:
1. 扫描当前目录中 results_ 开头的目录
2. 进入当前用户,进入 results_ 列表中的一个目录.
3. 创建一个以 results_xxxx 命名的 tmux 放到后台
4. 执行 results_xxxx 目录下的 run.py 脚本. 执行 3 次.每次执行完后暂停 10 分钟.
vim ~/.tmux.conf
添加
“`
set-window-option -g automatic-rename off
set-option -g allow-rename off
“`
用不着 send-keys,直接东西写进一脚本里面 split-pane/new-window/split-window 就行,不然你开的 shell 还得手动关