使用Python,我得到
$ python3 -c 'print("\\\n")'
\
$
Run Code Online (Sandbox Code Playgroud)
也就是说,一个反斜杠和一个换行符,后跟解释器插入的额外换行符。
使用C,编译代码
#include <stdio.h>
int main(void)
{
printf("\\\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
进入文件backslash.out产生
$ ./backslash.out
\
$
Run Code Online (Sandbox Code Playgroud)
即,一个反斜杠和一个换行符。
在 bash 中,我得到
$ STRING="\\\n"
$ printf "${STRING}"
\n$
Run Code Online (Sandbox Code Playgroud)
bash printf 命令到底在做什么?对于转义字符,它与 pythonprint或 C命令有何不同?我需要在变量中放入什么才能在终端上获得以下输出:printf\STRING
$ printf "${STRING}"
\
$
Run Code Online (Sandbox Code Playgroud)
在下面的代码片段中,您在反斜杠转义周围使用“双引号”:
$ STRING="\\\n"
$ printf "${STRING}"
\n$
Run Code Online (Sandbox Code Playgroud)
但是,Bash 仍然会计算双引号内的一些反斜杠转义符,因此之后变量的内容实际上是\\n,因为"\\"计算结果为\。
将字符串放在“单引号”中以防止 shell 接触任何反斜杠:
$ STRING='\\\n'
$ printf "$STRING"
\
$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7728 次 |
| 最近记录: |