最近发现了tmux和Tmuxinator之后,一直在尝试搭建一个开发环境来使用。
根据协议,我们不允许在脚本中存储密码/密码。所以我正在寻找的是等待 tmux 等待 SSH 隧道设置(提供密码,按下输入并登录)。
我知道 tmux 1.8+ 中有一个“等待”命令。我正在通过 Cygwin 运行 1.9a。但即使我已经阅读了文档,我也很难理解它。
tmux new-session -s development -n editor -d
tmux split-window -v
tmux split-window -v
"Need to send to all panes.
tmux send-keys -t development 'ssh user@example.com' C-m
Run Code Online (Sandbox Code Playgroud)
所以,这是我所拥有的一个非常简单的版本。
想法?我知道我可以同步会话,我仍在解决这方面的问题。
编辑:查看命令,并将窗格中的变量从同步窗格中提取到命令中。这可能是一种“更好”的方法,直到我能弄清楚如何让 TMUX 提示我进行用户输入。
可能会发出功能请求。
wait-for因此,如果您将 wait-for 视为类似于线程并发原语,则 wait-for 的基本用法并不太复杂
它并没有真正连接到其他 tmux 功能,只是 IPC 的便捷实现。
wait-for event_name就像等待事件是发出
事件wait-for -S event_name 信号的一种方式
和选项有点正交,就像-U信号量一样-L
wait-for您可以使用但仅当命令同步时才能解决此类竞争条件。
tmux send-keys 'sync-command ; tmux wait-for -S command-finished' C-m
tmux wait-for command-finished
Run Code Online (Sandbox Code Playgroud)
这里的问题是 ssh 命令不同步:您无法知道它何时完成。
翻阅手册,我们可以找到LocalCommand似乎可以实现我们想要的指令:连接完成后在本地运行命令,以便我们可以调用
ssh root@iris.tatw.name -o 'PermitLocalCommand yes' -o 'LocalCommand tmux wait-for -S done'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4487 次 |
| 最近记录: |