Bash 提示符颜色 Ubuntu

Bash 提示符颜色 Ubuntu

我正在尝试在基础 Ubuntu 12.04 服务器安装上使用一个简单的 shell 脚本来为整个系统的用户设置提示颜色。

我想让 Puppet 将文件 color.sh 放置在 /etc/profile.d/ 中 - 并赋予权限 744

但该文件根本没有被用户获取。~/.bashrc 似乎覆盖了这一点。

    if [[ ${EUID} == 0 ]] ; then
        PS1="\\[\\033[01;31m\\]\\h\\[\\033[01;34m\\] \\W \\$\\[\\033[00m\\] "
else
        PS1="\\[\\033[01;32m\\]\\u@\\h\\[\\033[01;34m\\] \\w \\$\\[\\033[00m\\] "
fi

我不愿意用 Puppet 来操作 ~/.bashrc 文件,而是用 profile.d 脚本来全局操作。

答案1

默认的 Ubuntu ~/.bashrc 将覆盖 PS1 的任何早期值,这就是您所看到的。您可以将 PS1 设置为只读

declare -r PS1=...

但这会导致默认的 ~/.bashrc 发出

-bash: PS1: 只读变量

这可能不是我们想要的。您可以编辑 /etc/skel/.bashrc 以删除设置 PS1 的行,这样新用户就不会获得默认尝试覆盖全局 PS1 定义的初始化脚本。这不会阻止他们添加自己的 PS1 定义,但上面的错误消息会给他们提供线索。

相关内容