如何使用笑脸来定制你的终端 bash 提示?

如何使用笑脸来定制你的终端 bash 提示?

我正在尝试弄清楚如何自定义终端的 bash 提示符以使用笑脸。我想要的(如下例所示)是将 cwd 与提示符用 \n 分隔开,如果命令成功则显示绿色笑脸,如果失败则显示红色悲伤脸。

有任何想法吗?

这是受到 Peepcode 截屏视频的启发。

例子

答案1

在花了大约半个小时研究 andhrimnir 的代码并做了进一步的研究之后,我终于得到了我想要的东西。

PS1="\w \`if [ \$? = 0 ]; then echo -e '\[\e[01;32m\]\n\xE2\x98\xBA'; else echo -e '\[\e[01;31m\]\n\xE2\x98\xB9'; fi\` \[\e[01;34m\]\[\e[00m\]"

您可以找到表情符号列表在这里进而转换它们到换行符后看到的 3 位字节码。

为了得到cwd,我所要做的就是使用\w。您还可以通过执行显示当前用户\u@\w,这将输出类似以下内容的内容joshsmith@~

答案2

上面显示的笑脸似乎是 unicode 字符0x263a。因此,您需要一个支持 unicode 的终端(不确定 terminal.app 是否支持此功能,但我想它支持)。

下面是示例代码,当返回代码为 0 时打印绿色笑脸,否则打印红色皱眉。

PS1="\[\e[01;32m\]\u@\h \[\e[01;34m\]\W \`if [ \$? = 0 ]; then echo -e '\[\e[01;32m\]:)'; else echo -e '\[\e[01;31m\]:('; fi\` \[\e[01;34m\]$\[\e[00m\]"

感谢 Arch 论坛上的 Fingel(他发布了这篇文章这里)。

相关内容