在命令行中,按目录自定义文本和背景颜色

aug*_*sto 11 command-line

在命令行中时,我需要按目录设置自定义文本和背景颜色。例子:

cd /home/someuser/Documents [ENTER] # I have black text white background
cd /home/someuser/Public [ENTER]  #I have white text on black background
Run Code Online (Sandbox Code Playgroud)

如何实现这一目标?

Rav*_*ina 15

一种解决方案是cd用函数覆盖。

让我们说,我在一档名为保存功能cd$HOME。现在我可以开始使用它$ source cd,然后$ cd ~/Documents等等。

在此处输入图片说明

function cd(){

    builtin cd "$@";

    case "$PWD" in

    "$HOME/Documents")
        echo -ne "\033]10;#000000\007"
        echo -ne "\033]11;#FFFFFF\007"
      ;;
    "$HOME/Public")
        echo -ne "\033]10;#FFFFFF\007"
        echo -ne "\033]11;#000000\007"
      ;;
    *)
        # Any other place
        echo -ne "\033]10;#FFFFFF\007"
        echo -ne "\033]11;#000000\007"
      ;;
    esac
}
Run Code Online (Sandbox Code Playgroud)

请注意,您可以省略该$HOME/Public部分,因为# Any other place无论如何都会处理它。我只是把它留在那里作为参考,所以你可以根据需要添加任何其他颜色。