好的,如果您坚持从命令行调用 ssh,那么这里应该可以解决问题:编写一个 shell 脚本并将其保存为colorssh.sh
. 当它运行时,它会查看匹配主机的参数并适当地设置活动终端窗口的颜色。然后它调用真正的 ssh,传递这些参数。当 ssh 返回执行脚本时,它会将颜色设置回正常。
由于您可能想继续输入ssh
而不是colorssh.sh
,因此您可以在.profile
.
至于剧本本身?这是代码:
#!/bin/bash
function setTerminalColors {
osascript \
-e "tell application \"Terminal\"" \
-e "tell selected tab of front window" \
-e "set normal text color to $1" \
-e "set background color to $2" \
-e "end tell" \
-e "end tell"
}
for ARG in $*
do
case "$ARG" in
host.example.com)
username@host.example.com)
setTerminalColors "{0,65535,65535}" "{65535,0,0}"
;;
username@otherhost.example.com)
setTerminalColors "{65535,65535,0}" "{0,65535,0}"
;;
esac
done
ssh $*
# back to normal
setTerminalColors "{0,0,0}" "{65535,65535,65535}"
您必须编辑脚本以添加新的主机/颜色组合。
请注意,颜色必须指定为 0-65535 范围内的 RGB 三元组整数。我知道,很奇怪,对吧?
从技术上讲,AppleScript 部分更改了已弃用的属性。您应该通过其“设置集”属性更改窗口的颜色,但我怀疑这会更改使用该设置集的所有窗口,而不仅仅是当前的。
此外,此脚本假定白底黑字是您的“正常”设置。如果不是这种情况,您可以更改脚本以在运行之前保存当前值或使用默认设置集中的颜色。