我有一个ksh文件,其中有以下几行代码
find . \
\( \
-name \*.tar -o \
-name \*.gz -o \
-name log.\* -o \
-name out.\* \
\) \
我有兴趣知道这些反斜杠的用途。 是为了逃避某些东西吗?
答案 0 :(得分:1)
一行重写:
find . \( -name "*.tar" -o -name "*.gz" -o -name "log.*" -o -name "out.*" \)
顺便说一句。在您的示例中,last -o(必须带有选项)和反斜杠是错误的
答案 1 :(得分:1)
反斜杠在这里有两个用途:
在行的末尾:让shell忽略换行符,即命令在下一行继续。没有它,shell会认为新命令将从下一行开始。
在一行中:转义下一个字符,以便外壳程序不解析它。这些字符通常对外壳具有特殊含义。反斜杠消除了此含义,以便将字符按原样传递给find
。
在此处详细了解此内容:Which characters need to be escaped when using Bash?。它与Bash有关,但KSH类似。