通过 SSH 使用时,捕获 shell 脚本不起作用

通过 SSH 使用时,捕获 shell 脚本不起作用

我正在开发client并想要运行server一个包含trap.

server如果我连接到交互式 SSH 会话并在其中运行以下最小示例,则它可以正常工作:

user@client:~$ ssh user@server
user@server:~$ sh -c 'trap "echo exiting..." EXIT'
exiting...
user@server:~$ 

但是,如果我不交互连接server,而是将命令添加到ssh命令中,则不再起作用:

user@client:~$ ssh user@server -- sh -c 'trap "echo exiting..." EXIT'
user@client:~$ 

答案1

也许你可以尝试这样的事情:

在客户端计算机上,将命令保存在名为(例如).stackexchange 的文件中:

user@client:~$ echo 'trap "echo exiting…" EXIT' > .stackexchange

然后,运行常规 SSH 命令来连接到服务器:

user@client:~$ ssh user@server

连接后,从文件运行命令:

user@server:~$ sh .stackexchange
exiting…
user@server:~$ 

相关内容