我在使用 Fabric(Ubuntu 13.04 上的 1.7.0 版)时遇到了一些问题。
考虑这个函数:
def does_not_work():
with cd('/absolute/folder/one/'):
with prefix('change_path_command'):
with cd('/absolute/folder/two/'):
run('some_random_command')
我希望它执行与以下相同的命令:
def works():
run('cd /absolute/folder/one/ && change_path_command && cd /absolute/folder/two/ && some_random_command')
但是,这里是 Fabric 输出fab does_not_work
:
Requested: some_random_command
Executed: /bin/bash -l -c "cd /absolute/folder/two/ && change_path_command && some_random_command"
似乎嵌套cd
s 给我带来了麻烦。
有很好的解释吗?