我想编写一个脚本,使用 tsh 将多个 IP 和端口隧道传输到我的本地端口。我偶然发现了 tmux 和 tmuxinator 来完成这项工作。我编写了一个 tmuxinator 项目,如下所示
# ./.tmuxinator.yml
name: tunnels
root: ~/
windows:
- myTunnels:
panes:
- tunnelHostOne:
- echo "HostOne"
- echo "tsh ssh --proxy=someProxy.com -L 127.0.0.1:5443:host1-dns.com:5432 codetalker@node1";
- tsh ssh --proxy=someProxy.com -L 127.0.0.1:5443:host1-dns.com:5432 codetalker@node1;
- tunnelCostDb:
- echo "HostTwo"
- echo "tsh ssh --proxy=someProxy.com -L 127.0.0.1:5445:host2-dns.com:5432 codetalker@node2";
- tsh ssh --proxy=someProxy.com -L 127.0.0.1:5445:host2-dns.com:5432 codetalker@node2;
但是当我使用运行这个项目时
tmuxinator tunnels
它按预期打开一个带有两个窗格的窗口,并且只有第一个 echo 命令在两个窗格中运行,并且在分离时终端包含以下输出:
unknown command: C-m
unknown command: C-m
unknown command: C-m
unknown command: C-m
[detached (from session tunnels)]
我可以理解这C-m
应该是Enter
执行命令并移动到其他命令,但我不知道如何修复它。请有人帮忙。
答案1
我刚刚在旧 Mac 上使用 tmuxinator 3.0.5 时遇到了同样的问题。问题是我在某些窗格行的末尾有不必要的分号 (;)。删除它们后,一切正常。
您可以使用以下示例重现该问题。删除分号即可。
# /home/X00000X/.config/tmuxinator/semicolon-test.yml
name: semicolon-test
root: ~
windows:
- devops:
panes:
- echo test;
- echo test;
# ^ these are the problem, by removing them, it works ok.