【发布时间】:2013-09-07 03:02:14
【问题描述】:
当命令是 if 语句的一部分时,如何在 shell 中将命令拆分为多行?
这行得通:
if ! fab --fabfile=.deploy/fabfile.py --forward-agent --disable-known-hosts deploy:$target; then rc=1
fi
这不起作用:
# does not work:
if ! fab --fabfile=.deploy/fabfile.py \
--forward-agent \
--disable-known-hosts deploy:$target; then
rc=1
fi
我得到的不是整个命令的执行,而是:
./script.sh: line 73: --forward-agent: command not found
更重要的是,我对 Bash 的理解中缺少什么可以帮助我理解这个问题以及将来的类似问题?
【问题讨论】:
-
错误是什么?我能够正确执行
$ if ! cp -n log/server1.log \ > .; then echo no copy; fi,在\之后使用换行符 -
终端反斜杠
\后面有空格吗?他们很难看到。如果你这样做了,你可能想看看你是否可以让你的编辑器要么删除尾随空格,要么让它们更明显。 -
是的,它是终端反斜杠后的空格。完全。谢谢。
-
是的,对不起,我应该发布“错误”(意外结果)!我的错!立即编辑。
-
你的理解是什么?这也不是问题的一部分。