我知道,在SSH选项-t选项分配伪tty。 我正在使用-t在login时跳转到不同的目录,例如: ssh -t my-server "cd /path/to/my/directory; bash --login" 。
为什么如果我login没有它(通常) /etc/motd打印和-t它不是? 我知道我可以在cd cat /etc/motd之前cd但不知道是否有更清洁的解决scheme,为什么会发生这样的事情。
ps:正如你可以想象的,即使我使用-t我也希望在login时使用MOTD。
MOTD通常是通过login显示的,而不是bash ,所以如果你不运行login你不会得到MOTD。 sshd可能甚至不使用login ,但打印motd根据其几个标志的设置。 (正如Jakuje指出的那样)通过sshd连接的方式不会触发motd行为。
我怀疑,试图让事情按照你想要的方式运行,当bash由sshd启动时,会改变你的configuration文件来做MOTD。 我想你可以查看是否定义了$tty ,但是可能还会有游戏阻止你在真正的login中获得两个MOTD。
这似乎是一个很小的收获很多的努力。
或者,如果你喜欢
ssh -t my-server "cd /path/to/my/directory; cat /etc/motd; bash --login"