gpt4 book ai didi

linux - 转发 Ctrl+C &c。超过 "ssh -tt"使用来自 heredoc 的命令运行

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:41 24 4
gpt4 key购买 nike

我正在尝试使用一个 shell 脚本来connect somemachine 来简化以下模式

ssh somemachine
tmux a

我试过将此处的文档用作 Python subprocess with heredocs为了发送“tmux a”命令

#!/bin/bash
ssh $1@$2 << 'ENDSSH'
tmux a
ENDSSH

然而失败并显示“stdin is not a terminal”。遵循 Pseudo-terminal will not be allocated because stdin is not a terminal 中的建议我做了以下修改

#!/bin/bash
ssh -tt $1@$2 << 'ENDSSH'
tmux a
ENDSSH

但是现在我所有的快捷方式都被拦截了。 IE,CTRL+C 将终止我的 SSH session ,而不是将 SIGINT 转发到进程。有什么建议吗?

最佳答案

我认为您只需要 -t 标志而不使用 heredoc。使用 heredoc 意味着 ssh 进程没有终端作为它的标准输入(它有 heredoc 代替)所以它不能将它转发到远程端的伪终端。使用 -tt 标志强制在没有输入的情况下分配 pts,这意味着按键进入本地进程而不是远程进程。

#!/bin/bash
ssh $1@$2 -t tmux a

对我有用

关于linux - 转发 Ctrl+C &c。超过 "ssh -tt"使用来自 heredoc 的命令运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48100620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com