无法理解如何做一些我认为对 Fabric 来说应该很直观的事情。我想捕获远程执行命令产生的标准输出,然后在后续远程调用中使用结果。
但是,我遇到了非常难以理解的错误。我感觉到我正在做的事情有很多问题,但我不知道从哪里开始。也许有人可以帮我打破这个。
我有的:
...
with cd(env.repo):
abbrev_hash = run('git log -1 --pretty="%h"')
run("rsync -r --exclude '.git/*' %s %s" % (env.repo, abbrev_hash))
...
相关输出:
[cookcountyjail.recoveredfactory.net] 运行:git log -1 --pretty="%h" [cookcountyjail.recoveredfactory.net] 输出:[cookcountyjail.recoveredfactory.net] 输出:c6d4ea0 [cookcountyjail.recoveredfactory.net] 输出:[ cookcountyjail.recoveredfactory.net] 出:[cookcountyjail.recoveredfactory.net] 运行:rsync -r --exclude '.git/*' > /home/ubuntu/repos/cookcoc6d4ea0l_2.0-dev
[cookcountyjail.recoveredfactory.net] 出:/bin/bash:-c:第 1 行:意外标记附近的语法错误
newline' [cookcountyjail.recoveredfactory.net] out: /bin/bash: -c: line 1:
[cookcountyjail.recoveredfactory.net] 出:' [cookcountyjail.recoveredfactory.net] 出:致命错误:run() 在执行时收到非零返回码 1!
c6d4ea0ed: rsync -r --exclude '.git/*' /home/ubuntu/repos/cookcountyjail_2.0-dev
执行:/bin/bash -l -c "cd /home/ubuntu/website/2.0/websites && export PATH=\"\$PATH:\"/home/ubuntu/website/2.0/websites/active\"\" && rsync -r --exclude '.git/*' /home/ubuntu/repos/cookcouc6d4ea0_2.0-dev "