Bash脚本与tmux启动一个4窗口窗口
发布时间:2020-12-15 16:18:52 所属栏目:安全 来源:网络整理
导读:任何人都可以帮助解释tmux,bash和exec是怎么回事?我试图用4窗格窗口设置一个tmux会话。理想情况下,我想在3个窗格中运行命令:一个Ruby Thin服务器和几个Ruby守护进程。这是我到目前为止: ?/ .bin / tmux-foo: #!/bin/shtmux new-session -d -s foo 'exe
任何人都可以帮助解释tmux,bash和exec是怎么回事?我试图用4窗格窗口设置一个tmux会话。理想情况下,我想在3个窗格中运行命令:一个Ruby Thin服务器和几个Ruby守护进程。这是我到目前为止:
?/ .bin / tmux-foo: #!/bin/sh tmux new-session -d -s foo 'exec pfoo "bundle exec thin start"' tmux rename-window 'Foo' tmux select-window -t foo:0 tmux split-window -h 'exec pfoo "bundle exec compass watch"' tmux split-window -v -t 0 'exec pfoo "rake ts:start"' tmux split-window -v -t 1 'exec pfoo' tmux -2 attach-session -t foo ?/ .bin / pfoo: #!/bin/bash cd ~/projects/foo rvm use ree # here I want to execute command1 2 3 or 4... exec $SHELL 这一切都可以工作…但是当我运行瘦服务器的第一个窗格中的ctlr-c,它停止瘦服务器并返回到shell。然而,命令不在历史中;即如果我击中向上键我没有得到包执行瘦命令…我从我的bash历史中得到一些其他命令。我想知道是否有任何方式来安排这些脚本,以便我得到的命令在bash历史。 也…我试过了许多组合的exec,exec $ SHELL -s …和exec $ SHELL -s … -I,我不知道发生了什么… 任何人都可以帮助解释什么是与tmux和bash和exec在这里的一般想法?
正如其他人提到的,在启动$ SHELL之前,您的命令由shell脚本运行;没有一般方式的$ SHELL的实例可以知道它的父运行之前启动它。
要将“初始命令”导入shell历史记录,需要将命令键击直接提供给$ SHELL本身的实例(当然,它已经启动)。在其他情况下,我可能建议使用一个小的Expect程序产生一个$ SHELL的实例,喂它的击键,然后使用交互将tty绑定到期望产生的$ SHELL。 但在tmux的上下文中,我们可以使用send-keys: #!/bin/sh tmux new-session -d -s foo 'exec pfoo' tmux send-keys 'bundle exec thin start' 'C-m' tmux rename-window 'Foo' tmux select-window -t foo:0 tmux split-window -h 'exec pfoo' tmux send-keys 'bundle exec compass watch' 'C-m' tmux split-window -v -t 0 'exec pfoo' tmux send-keys 'rake ts:start' 'C-m' tmux split-window -v -t 1 'exec pfoo' tmux -2 attach-session -t foo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |