0

我正在尝试在 python 2.7 中自动化测试(在 linux ubuntu 12.04 上的 eclipse 中)。测试检查另一台电脑上的配置,所以我使用结构进行 ssh 连接。

我需要执行一个脚本:

run("cd somepath && ./execute_script.sh")

问题是我的脚本需要一个 sudo 才能运行,但是将命令更改为:

sudo("cd somepath && ./execute_script.sh")

不起作用,因为“cd”不能与 sudo 结合使用。我也不能将命令分成两部分,因为这会创建 2 个 shell,而第二个会忘记我在第一个中要走的路径。

如果我这样做:

run("cd somepath && sudo ./execute_script.sh")

测试不会完全自动进行,因为您必须一次输入密码。

有没有办法将 run() 和 sudo() 结合起来?

4

1 回答 1

2

How about:

from fabric.api import cd,sudo
with cd('somepath'):
    sudo('./execute_script.sh')
于 2013-11-05T09:59:02.243 回答