无法理解如何执行某些操作,我认为这对Fabric应该很直观。我想捕获远程执行命令产生的stdout,然后在随后的远程调用中使用结果。插入结构命令的字符串输出时出现的奇怪问题
但是,我收到了真正无法理解的错误。我感觉到我在做什么有很多问题,但我不知道从哪里开始。也许有人可以帮我把这件事分开。
我有什么:
...
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] run: git log -1 --pretty="%h" [cookcountyjail.recoveredfactory.net] out: [cookcountyjail.recoveredfactory.net] out: c6d4ea0 [cookcountyjail.recoveredfactory.net] out: [cookcountyjail.recoveredfactory.net] out: [cookcountyjail.recoveredfactory.net] run: rsync -r --exclude '.git/*' > /home/ubuntu/repos/cookcoc6d4ea0l_2.0-dev
[cookcountyjail.recoveredfactory.net] out: /bin/bash: -c: line 1: syntax error near unexpected token
newline' [cookcountyjail.recoveredfactory.net] out: /bin/bash: -c: line 1:
[cookcountyjail.recoveredfactory.net] out: ' [cookcountyjail.recoveredfactory.net] out:Fatal error: run() received nonzero return code 1 while executing!
c6d4ea0ed: rsync -r --exclude '.git/*' /home/ubuntu/repos/cookcountyjail_2.0-dev
Executed: /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 "
顺便说一句,我意识到,我可能只是通过某种手段输出重定向或另一个在bash shell里面,但我真的很想理解更好的织物。 –