Bash 中的转义字符

Fumbani Banda 2023年1月30日 2022年5月11日
  1. 转义字符
  2. 使用双引号
  3. Bash 中的更多转义字符
Bash 中的转义字符

本教程解释了转义字符是什么,并提供了一个信息丰富的转义字符列表。

转义字符

转义字符是表示除自身之外的替代解释的字符。没有明确的列表包含所有需要在 bash 中转义的字符。但是,推荐的一般规则是如果有疑问,就转义

使用双引号

在转义字符周围使用双引号可以保留其字面意义。

让我们使用星号 * 和 echo 命令来演示这一点。在终端上,键入 echo * 会显示当前目录中的所有文件。但是,将 * 括在双引号中只会在标准输出中显示星号。

echo "*"

它显示以下输出。

*

Bash 中的更多转义字符

没有明确的列表包含所有需要在 bash 中转义的字符。你可以通过测试其中一些字符来找出答案。以下 bash 脚本提供了对哪些字符需要转义以及转义字符的表示的洞察。

for x in {0..127} ;do
    printf -v char \\%o $x
    printf -v char $char
    printf -v res "%q" "$char"
    esc=Escape
    [ "$char" = "$res" ] && esc=-
    printf "%02X %s %-7s\n" $x $esc "$res"
done | sort

该脚本显示下面的输出。我只显示了前 11 个字符。第一个字段具有字节的十六进制值,如果需要对字符进行转义,则第二个文件具有 Escape,如果不需要,则使用 -。最后一部分显示了字符在转义时的表示。

00 Escape ''
01 Escape $'\001'
02 Escape $'\002'
03 Escape $'\003'
04 Escape $'\004'
05 Escape $'\005'
06 Escape $'\006'
07 Escape $'\a'
08 Escape $'\b'
09 Escape $'\t'
0A Escape $'\n'
0B Escape $'\v'
0C Escape $'\f'
0D Escape $'\r'
0E Escape $'\016'
0F Escape $'\017'
10 Escape $'\020'
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub