擅长:python、mysql、java
<p>如果在反斜杠之后和换行符之前有空格(空格或制表符),则换行符将失败。没有这样的空白,您的示例对我很有用:</p>
<pre><code>$ cat test.sh
if ! fab --fabfile=.deploy/fabfile.py \
--forward-agent \
--disable-known-hosts deploy:$target; then
echo failed
else
echo succeeded
fi
$ alias fab=true; . ./test.sh
succeeded
$ alias fab=false; . ./test.sh
failed
</code></pre>
<p>从注释中提升了一些细节:shell中的行继续反斜杠并不是真正的特例;它只是一般规则的一个实例,反斜杠“引用”紧跟其后的字符,从而防止了它通常会受到的任何特殊处理。在这种情况下,下一个字符是换行符,要防止的特殊处理是终止命令。通常,引用的字符会按字面意思包含在命令中;反斜杠换行符会被完全删除。但在其他方面,机制是一样的。反斜杠只引用紧跟在后面的字符;如果该字符是空格或制表符,则只得到一个带引号的空格或制表符,并且任何后续换行符都保持不带引号。</p>