所以我搜索了这个,但是我没有找到任何能解决这个问题的东西。我经常通过ssh连接到远程服务器,在ssh上我没有sudo权限。
假设由于不活动或其他原因,远程服务器终止/重置了连接。现在,我想要的是,在远程服务器终止我的连接之前,它应该运行一个pwd。我知道有一些方法可以延长/阻止远程服务器终止连接,但我希望它在终止之前运行我选择的自定义命令。
发布于 2018-05-18 23:11:46
在Bash中,您可以为EXIT设置一个陷阱,以便在shell退出时运行一个命令:
trap 'do something here' EXIT它适用于由于输入结束(^D)而退出的shell、通过TMOUT超时、使用SIGTERM或SIGHUP拍摄的shell以及在SSH客户端死亡的情况下的远程shell。
但是,当在SSH (或其他网络连接)上运行时,外壳在真正关闭之前无法对连接关闭作出反应,因此它打印的任何内容都不会到达另一端。您可以运行一个命令来修改远程终端上的内容,但是像pwd这样的东西只会打印一些内容,但不会做任何有用的事情。
如果您确实希望显示最后一个工作目录,可以在提示符上使用\w转义将外壳打印出来。
发布于 2018-07-26 10:33:26
与伊尔卡丘的回答类似,您可以使用一组命令创建~/.bash_logout,以便在bash登录外壳退出时运行。类似于他的回答中的问题,如果SSH连接被终止,这将不会运行。
https://unix.stackexchange.com/questions/444719
复制相似问题