xen*_*ide 14 shell colors prompt zsh
在 zsh 中,您可以%#在PS1(或任何PROMPT变量)中有一个,这基本上意味着%如果是用户则显示或#如果是 root则显示。我想知道是否有任何方法可以影响这一点,以便%或#改变颜色取决于它是用户还是根用户(根为红色,用户为蓝色)显而易见的方法只是改变PS1我的根~/.zshrc但考虑这已经是一个特殊的符号了,我想知道是否可能没有一种方法可以PS1对两者使用相同的符号......特定%#于 zsh 的东西(我敢肯定还有其他的 hacks 我也可以这样做)一个 if then 语句)。
小智 8
%(!.%{\e[1;31m%}%m%{\e[0m%}.%{\e[0;33m%}%m%{\e[0m%})
如果您是 root,这应该可以将主机名 ( %m)更改为不同的颜色(红色)。我没有 zsh shell 来测试它,但它看起来是正确的。
原因如下:
%(x.true.false):: 根据三元第一项的评估,执行正确的语句。'!如果 shell 有特权,则为 true。实际上%#是 的捷径%(!.#.%)。
%{\e[1;31m%} %m %{\e[0m%}:: the%{\e[X;Ym%}是以 X 作为格式(粗体、下划线等)和 Y 作为颜色代码的颜色转义序列。请注意,您需要打开和关闭要更改颜色的术语周围的序列,否则该点之后的所有内容都将是任何颜色。%m为了清楚起见,我在提示词周围添加了空格。
http://www.nparikh.org/unix/prompt.php有更多关于颜色表的选项和详细信息以及 zsh 的其他可用选项。
autoload colors
colors
PS1="%~ %{%(#~$fg[red]~$fg[blue])%}%#%{$fg[default]%} "
Run Code Online (Sandbox Code Playgroud)
%(#测试 shell 是否以 root 身份运行。更改此设置以%(!测试 shell 是否以提升的权限运行(包括诸如 之类的内容newgrp,但不以 root 身份登录)。
| 归档时间: |
|
| 查看次数: |
13805 次 |
| 最近记录: |