ткань-есть ли способ расширить переменные оболочки?


Я пытаюсь загрузить файл с удаленного хоста, причем удаленный путь зависит от переменной оболочки.

>>> 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

Есть ли способ запросить расширение переменной оболочки?

1 2

1 ответ:

Вы можете использовать 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'))