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脚本来全局工作。

默认的Ubuntu〜/ .bashrc将会覆盖你所看到的任何早期的PS1值。 你可以让PS1只读

 declare -r PS1=... 

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

-bash:PS1:只读variables

这可能是不可取的。 您可以编辑/etc/skel/.bashrc以删除设置PS1的行,以便新用户不会获得默认尝试并覆盖全局PS1定义的初始化脚本。 这不会阻止他们添加他们自己的PS1定义,但上面的错误信息会提示他们。