一般来说,您可以在长命令/行的末尾放置一个“\”,将其分成几行。
sudoers 语法也允许这样做,没关系。
但:
如果“\”字符后面有“空格”,命令/脚本就会中断,但 sudo 没有。
问题: sudo 在所有类 UNIX 系统上接受“\”后面的空格是官方的吗(以及在哪里记录的)?
命令示例:
正常反斜杠:
$ echo a; \
> echo b
a
b
反斜杠后面加了一个空格:
$ echo a; \
a
bash: : command not found
$
答案1
该行为取决于上下文,因为\
由不同的应用程序处理。
sudoers 文件是sudo
来自sudo
.所以这取决于 的实施sudo
,其中可能因系统而异。例如,来自man sudoers
OSX:
长行可以用反斜杠('\')作为最后一个来继续 特点在线上。
您描述的其他行为由 处理bash
并记录在man bash
:
如果
\<newline>
出现一对,并且反斜杠本身没有被引号引起来,\<newline>
则将其视为行延续(即,将其从输入流中删除并有效地忽略)。
其他 shell 可能有不同的实现。