使用 Python,我得到
$ python3 -c 'print("\\\n")'
\
$
也就是说,一个反斜杠和一个换行符,后面跟着解释器插入的一个额外的换行符。
使用 C 语言编译代码
#include <stdio.h>
int main(void)
{
printf("\\\n");
return 0;
}
放入文件backslash.out
中
$ ./backslash.out
\
$
也就是说,一个反斜杠和一个换行符。
在 bash 中,我得到
$ STRING="\\\n"
$ printf "${STRING}"
\n$
bash printf 命令在这里到底起什么作用?就转义字符而言,它与 pythonprint
或 C命令有何不同? 我需要将什么放入变量中才能在终端上获得以下输出:printf
\
STRING
$ printf "${STRING}"
\
$
答案1
在下面的代码片段中,使用“双引号”括住反斜杠转义符:
$ STRING="\\\n"
$ printf "${STRING}"
\n$
但是,Bash 仍然会评估双引号内的某些反斜杠转义符,因此此后的变量的内容实际上是\\n
,因为"\\"
评估结果为\
。
将字符串放在“单引号”中,以防止 shell 触碰任何反斜杠:
$ STRING='\\\n'
$ printf "$STRING"
\
$