我正在开发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:~$