假设:
export TEST=/somewhere
我想使用:
运行命令/somewhere/program
with cd('$TEST'):
run('program')
但是,这是不起作用的,因为$
被逃脱了。
有没有办法在织物cd()
调用中使用环境变量?
遵循@andrewwalker的建议,这是一个更紧凑的解决方案,对我有用(据我所知,结果是相同的):
with cd(run("echo $TEST")):
run("program")
,但我决定选择一个(非常)更简洁但可读的解决方案:
run('cd $TEST && program')
如果我正确的话,第二个解决方案会产生相同的结果。
您可以使用echo
捕获该值testdir = str(run("echo $TEST"))
with cd(testdir):
run("program")
替代:
import os
def my_task():
with lcd(os.environ['TEST_PATH']):
local('pwd')
os.getenv('TEST_PATH')
也可以使用(默认值,可选)
帽子提示:将Bash环境变量发送回Python Fabric