首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PS1不设置颜色

PS1不设置颜色
EN

Stack Overflow用户
提问于 2018-10-11 16:19:21
回答 3查看 1.8K关注 0票数 1

我在PS1文件中有一个bash_profile变量

代码语言:javascript
复制
orange=$(tput setaf 166);
yellow=$(tput setaf 228);
green=$(tput setaf 71); 
white=$(tput setaf 15); 
bold=$(tput bold); 
reset=$(tput sgr0); 
PS1="\[${bold}\]"; 
PS1+="\[${orange}\]\u"; # username 
PS1+="\[${white}\]@"; 
PS1+="\[${yellow}\]\h "; # host 
PS1+="\[${green}\]\w"; # working directory 
PS1+="\[${white}\]\$ \[${reset}\]"; # '$' (and reset color) 
export PS1; 

当我打开新的终端实例时,它将正确地显示除颜色之外的所有内容。

但是,当我执行命令时

代码语言:javascript
复制
source .bash_profile

颜色起作用了。如果我打开一个新标签它就消失了。

但是,在新的终端实例中,在不执行源命令的情况下,颜色适用于

export PS1="\[\033[35m\]\t\[\033[m\]-\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "

[

这种奇怪行为的原因是什么?

在breif中,在一个新的终端会话中,第一个PS1不显示颜色,但是放在同一个bash_profile文件中的第二个ps1正在解压它。但是第一种方法是在资源来源时显示颜色。

注:我正在使用mac。我也确信变量是在bash_profile中设置的,但是没有设置颜色。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-03 13:08:01

我已经为我的xterm-256终端安装了太阳能配色方案/主题。是那个引起这个问题的。当我改变配色方案时,PS1工作得很好。

票数 0
EN

Stack Overflow用户

发布于 2018-10-12 12:55:15

你应该多调查一点(是的,甚至更多)。

在每种情况下,您都应该使用printf "%q\n" "$PS1"来查看变量PS1的确切值(带有转义的不可打印字符)。您只是想将颜色添加到已经设置的PS1变量中吗?所以,如果您得到了未着色的输出,这可能是因为您的代码没有执行,所以原始值仍然是设置的吗?然后,只执行配置文件脚本。

.bash_profile通常只在启动登录-shell时才执行。现在,许多发行版都不正确,而且在这方面有很多解决办法,因此它们通常包含.bashrc文件,这些文件最初是.bash_profile的源。.bashrc是为每个新的shell提供的,因此有效地,您的.bash_profile也可以为每个shell提供。

我可以猜到,您的.bashrc首先来源于.bash_profile,然后将PS1设置为类似于您的值,只是没有颜色。但当然,这是猜测。

票数 1
EN

Stack Overflow用户

发布于 2018-10-12 13:10:28

在OP的例子中,我怀疑需要使用~/.bashrc而不是~/.bash_profile来设置颜色。

下面是事情的运作方式:

在设置bash环境时涉及到许多文件。

/etc/profile设置系统范围内的配置文件。

~/.bash_profile~/.bash_login~/.profile --当bash作为登录shell被调用时,默认情况下会读取这些

~/.bashrc -这总是被读取的,除非bash作为sh调用,或者bash作为bash --norc调用。

~/.bash_logout -登录外壳清理

~/.inputrc -读行初始化文件。

哪些文件以及读取这些文件的顺序取决于bash的调用方式。

有些情况并非都是相互排斥的:

  • 登录壳
  • 交互壳
  • 非交互壳
  • posix模式
  • 使用连接到网络连接的stdin调用的bash (是的,它会知道)
  • 作为sh调用的bash
  • 使用不等于实际uid/gid的有效uid/gid调用bash。

您需要知道哪些情况适用于您的调用,以确定哪些文件将被读取。

man bash并搜索调用,以获得确切的详细信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52764731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档