我在 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
(如另一个答案中提到的)可能是最好的方法。
如果你实际上更喜欢更通用的东西bash
,PROMPT_COMMAND
您可以设置 shell 变量来在打印 shell 提示符之前运行一个命令(或多个命令),这会在ssh
(或任何其他命令)返回到 shell 之后立即发生。
答案2
当我退出 ssh 会话时,有没有办法获取我的 .bashrc?
是的,定义一个shell函数:
ssh() { command ssh "$@"; source ~/.bashrc; }