了解转义码

use*_*686 3 linux command-line bash escape-characters

我在我的.bashrc文件中看到这个:

 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\
      [\033[01;34m\]\w\[\033[00m\]\$ '
Run Code Online (Sandbox Code Playgroud)

完全不知道所有这些转义代码是什么意思。

Gil*_*il' 10

里面有三种转义码:bash参数扩展bash提示扩展终端转义码

  • ${debian_chroot:+($debian_chroot)}意思是“如果$debian_chroot设置并且非空,那么($debian_chroot),否则什么都没有”。(请参阅/etc/bash.bashrc如何debian_chroot定义。顾名思义,这是一个 Debian 的东西。)
  • 反斜杠转义是快速转义。\u由用户名\h替换,由机器名替换,等等(请参阅手册以获取列表)。里面的部分\[…\]是终端逃逸;括号告诉 bash 这些部分不占用屏幕上的任何空间(这让 bash 计算提示的宽度)。\033是 ESC 字符(字符号 033 八进制,即 27 十进制,有时写成\e^[);它引入了终端转义序列。
  • ESC [ codes m(写入CSI Pm mxterm 控制序列列表中)更改以下文本的颜色或外观。例如代码1切换为粗体,32将前景色切换为绿色,0切换为默认属性。

  • ESC 代码被称为 ANSI 转义序列。你可以在网上找到很多关于它们的信息。 (3认同)