我试着在双打中得到bash,给我一个“正确”的反斜杠。谁在逃避谁?为什么两个双引号反斜杠给我一个打印的反斜杠,就像四个双反斜杠也给我一个打印的一个反斜杠.?现在6个双反斜杠给了我两个打印反斜杠,那么8个双引号反斜杠…?等等..。那么,谁在逃避什么/谁在大量使用双斜杠.
povje@povje:~$ which bash
/bin/bash
povje@povje:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal试图在bash中打印带有printf的双引号反斜杠:
povje@povje:~$ printf "\\"
\povje@povje:~$ printf "\\\\"
\povje@povje:~$ printf "\\\\\\"
\\povje@povje:~$ printf "\\\\\\\\"
\\povje@povje:~$ printf "\\\\\\\\\\"
\\\povje@povje:~$所以2双引文\给我打印1
_4_doubleqouted给我打印了一个
6双打\给我印了2
_8_doubleqouted给我打印了2个
10*双数\给我打印3
。。
那么,为什么每隔一秒钟就会有一对双打的背奴隶被忽视呢?
发布于 2022-11-28 13:43:26
反斜杠是特殊的双引号在bash。您需要在双引号中转义(即反斜杠)一个反斜杠才能得到一个文字反斜杠。使用单引号,您不需要双反斜杠。
反斜杠在printf中也是特殊的。您再次需要转义(即反斜杠)一个反斜杠来打印它。
但是如果在printf的参数中有一个反斜杠,后面跟着一个非特殊字符,则反斜杠被解释为是转义的。
printf '\' # prints \
printf '\\' # prints \ again
printf '\\\' # prints \\
# ...https://stackoverflow.com/questions/74601435
复制相似问题