转义字符( \
)可以用来逃避行尾,例如
% echo This could be \ a very \ long line\! This could be a very long line! %
然而,不是由具有两个字符的\n
表示的行结束(新行)。 不应该逃避的结果是\n
的字面意思。 例如
%echo $'\\n' \n %
谢谢您的回答!
编辑:对不起,我没有足够的解释。 我不是想要回应一个新的路线。 我想知道为什么\
能够换行符( \n
)有两个字符,而不是只是在新行字符中跳过反斜杠,并产生\ n的字面值
实际上, \n
并不是真正的换行符 – 它是一个代表换行符的转义序列(在Linux中只是一个字符)。 在一行的结尾处使用回车键来转义您输入的实际换行符。 您可以使用hexdump来查看哪些ASCII值代表不同的字符:
%echo $'\\n' \n %echo $'\\n' | hexdump -C 00000000 5c 6e 0a |\n.| 00000003
您会注意到,echo会打印出3个字符: \
(5c), n
(6e)和换行符(0a)。 你还会注意到,在hexdump输出的右边,换行符显示为“。”,因为它被认为是非打印字符 。
换行符是UNIX世界中给出的一个字符,它在面向行的文件(或终端)中结束一行。 在UNIX / Linux世界中,这对应于ASCII换行字符。
不同的系统使用不同的约定来结束行:Windows使用一系列的回车和换行符,而Mac最初使用一个回车符。 这种混淆源于这样的事实:这些原本是将打印机的打印头移动到新行开始所需的命令。
\n
是一种在代码中表达行结束符的传统方式,最初在UNIX世界中,更确切地说是在C语言中。 请注意,当读取文本文件时,即使在系统中这是一个双字符序列,C也会读取单个换行符。