如何使用 printf 打印反斜杠后跟换行符?

如何使用 printf 打印反斜杠后跟换行符?

使用 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"
\
$ 

相关内容