Skip to main content
 首页 » 编程设计

python之fabric之有没有办法扩展 shell 变量

2025年05月04日6Free-Thinker

我正在尝试从远程主机下载文件,远程路径取决于 shell 变量。

>>> with settings(host_string = 'user@server.com'): 
    get('$ORACLE_HOME/network/admin/tnsnames.ora') 

它抛出一个错误:

Fatal error: get() encountered an exception while downloading '/home/user/$ORACLE_HOME/network/admin/tnsnames.ora' 
 
Underlying exception: 
    No such file 

有没有办法要求 shell 变量扩展?

请您参考如下方法:

您可以使用 fabric.operations.run() :

from fabric.operations import run 
 
oracle_path = run('echo $ORACLE_PATH', shell=True) 
 
with settings(host_string = 'user@server.com'): 
    get(os.path.join(oracle_path, 'network/admin/tnsnames.ora'))