2013-02-18 2 views
2

셸 변수에 따라 원격 경로를 사용하여 원격 호스트에서 파일을 다운로드하려고합니다. 쉘 변수 확장을 요청하는 방법이fabric - 쉘 변수를 확장하는 방법이 있습니까?

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

Underlying exception: 
    No such file 

있습니까 :

>>> with settings(host_string = '[email protected]'): 
    get('$ORACLE_HOME/network/admin/tnsnames.ora') 

그것은 오류가 발생합니다?

답변

1

당신은 fabric.operations.run() 사용할 수 있습니다 작동

from fabric.operations import run 

oracle_path = run('echo $ORACLE_PATH', shell=True) 

with settings(host_string = '[email protected]'): 
    get(os.path.join(oracle_path, 'network/admin/tnsnames.ora')) 
+0

을! 어쨌든 약간의 수정 : 나는 윈도우에서 유닉스에서 파일을 얻으려고하기 때문에,'os.path.join'은 나에게'/home/oracleclient/client.x86 \ network/admin/tnsnames.ora'와 같은 혼합 경로를 준다. 올바르지 않으므로 간단히 대신'oracle_path + '/ network/admin/tnsnames.ora'를 사용했습니다. – Emmanuel

+1

@Emmanuel :이 경우'os.path' 대신'posixpath'를 사용할 수 있습니다. – jfs

+0

실제로, 나는 이것을 알지 못했다! 감사 ! – Emmanuel

관련 문제