当我退出 'ssh' 会话时,通过 bashrc 获取源代码

当我退出 'ssh' 会话时,通过 bashrc 获取源代码

我在 OS X 上并且正在使用 iTerm2。

我已经更新了多台服务器上的 Bash 配置文件,这样当我ssh进入这些服务器时,我可以从选项卡一眼看出我所在的框。当我退出会话时ssh,启动该会话的 shellssh不会~/.bashrc再次启动(我理解这是正常的操作过程),因此我的选项卡标题和颜色与会话中的标题和颜色保持一致ssh

通常,当我退出ssh会话时,我也会退出我实际使用的计算机上的 shell。但为了保持一致性,我希望在退出会话时将 iterm2 选项卡恢复为它们所代表的 shell 的适当标题和颜色ssh

.bashrc当我退出会话时,有没有什么办法可以找到我的来源ssh

~/.bash_profile~/.bashrc和 中,~/.bash_logout我有以下几行:

export PROMPT_COMMAND=''
echo -e "\033];test machine name\007"

当我退出会话时ssh,似乎我的主目录中的这些 Bash 文件都没有被引用来重新打印选项卡标题。当我手动使用source ~/.bashrc选项卡标题引用它们时,重新打印就好了。所以,语法没有错。

答案1

如果您希望这个命令特定于,那么重新定义ssh(如另一个答案中提到的)可能是最好的方法。

如果你实际上更喜欢更通用的东西bashPROMPT_COMMAND您可以设置 shell 变量来在打印 shell 提示符之前运行一个命令(或多个命令),这会在ssh(或任何其他命令)返回到 shell 之后立即发生。

答案2

当我退出 ssh 会话时,有没有办法获取我的 .bashrc?

是的,定义一个shell函数:

ssh() { command ssh "$@"; source ~/.bashrc; }

相关内容