转义字符( )可以用来逃避行尾,例如
% echo This Could be a very long line! This Could be a very long line! %
然而,不是由具有两个字符的n表示的行结束(新行)。 不应该逃避的结果是n的字面意思。 例如
%echo $'\n' n %
谢谢您的回答!
编辑:对不起,我没有足够的解释。 我不是想要回应一个新的路线。 我想知道为什么能够换行符( n )有两个字符,而不是只是在新行字符中跳过反斜杠,并产生 n的字面值
bash内build时间命令的精度是多less?
为什么我的bash脚本在空的空间上打破?
解释/ proc / / mountstats或/ proc / self / mountstats中的数据
不扩展$ HOME或“〜”的符号链接?
Windows Git Bash空白别名问题
为什么`timeout 2 timeout 1 bash`卡住了
如何将C代码转换为程序集的hex表示?
Git Bash不会运行我的python文件?
Bash if else然后在一行中使用bash版本的sys.exit()
如何从两台服务器上存在的rsync中排除目录?
实际上, 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也会读取单个换行符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。