不能在没有注释的情况下写#

不能在没有注释的情况下写#

我需要用字符指定密码#,但它注释了该行。我如何强制它按字面意思阅读?

例如:我需要把PASSWORD=xpto#123.不加评论的情况下123

答案1

如果说

PASSWORD=xpto#123

是任何类似 Bourne 的 shell(bash、dash、ksh、zsh...)中的代码,#不会被视为注释。在这些 shell 中,#仅在 shell 标记的开头引入注释(因此在行的开头或后面的空格或;, |, &&...)。

它将被视为rc外壳程序或派生程序中的注释字符(这是在形状中进行赋值的其他外壳程序var=value),但我怀疑您正在使用这些字符。

最有可能的是,您尝试在某些配置文件中使用它,在其中#引入注释也很常见。

配置文件没有真正的标准,那么如何逃脱该字符(如果以其他方式视为注释)将取决于实际的配置文件。

最好是阅读该配置文件或其所属软件的手册。

转义字符的常见方法包括双引号 ( "...")、单引号 ( '...') 或字符前面的反斜杠。也可以使用八进制序列² ( \043) 或十六进制² ( \x23) 或 Unicode ( \u0023) 输入字符...对于引号的处理方式也可能有一些变化(反斜杠或其他字符在引号内是否特殊。 ..)。


1 在rcshell 中,唯一的引用运算符是(并且单引号本身在这些单引号内'...'表示)。''esshell(源自 Byron Rakitzis 的rcUnix 克隆)中,您还可以使用\#,\043\x23

² 请注意,这些代表字节值,因此 a\x43只会#以 ASCII 字符集或兼容字符集对 a 进行编码,这应该是当今使用的绝大多数字符集,唯一的例外是一些仍然使用 EBCDIC 的罕见 IBM 系统。但使用非 ASCII 字符时需要记住这一点。\u0023另一方面(通过 Unicode)保证是#字符。

答案2

您还可以使用反斜杠转义 # PASSWORD=xpto\#123

相关内容