我正在尝试在python 2.7中自动化测试(在Linux ubuntu 12.04上的eclipse中)。 该测试检查另一台PC上的配置,因此我使用fabric进行ssh连接。
我需要执行一个脚本:
run("cd somepath && ./execute_script.sh")
问题是我的脚本需要运行sudo,但是将命令更改为:
sudo("cd somepath && ./execute_script.sh")
不起作用,因为“cd”不能与sudo结合使用。 我也不能将命令分成两部分,因为这会产生2个炮弹,第二个会忘记我在第一个炮弹中的路径。
如果我这样做:
run("cd somepath && sudo ./execute_script.sh")
由于您必须一次输入密码,因此测试无法完全自动完成。
有没有办法使用某种类型的合并run()和sudo()?
答案 0 :(得分:2)
怎么样:
from fabric.api import cd,sudo
with cd('somepath'):
sudo('./execute_script.sh')