import sys
from fabric.api import *
env.hosts = ['my.host.com']
env.user = 'myuser'
env.password = 'mypassword'
# env.shell = '/bin/bash -l -c'
def deploy():
x = run("cd /srv/proj/")
print x.__dict__
Я пытаюсь войти в удаленную оболочку и выполнить эту простую команду cd
. хотя он показывает, что не существует никакой ошибкиТкань сценарий не печатает вывод на успех
[my.host.com] run: cd /srv/proj/
{'succeeded': True, 'return_code': 0, 'failed': False, 'command': 'cd /srv/proj/', 'stderr': '', 'real_command': '/bin/bash -l -c "cd /srv/proj/"'}
, но когда я исполню run('ls')
после команды CD, он ничего не печатает, но определенно есть файлы. так что здесь происходит. кроме того, у меня возникают проблемы с выполнением команды ручного набора (я имею в виду псевдоним в файле .bashrc). ткань использует /bin/bash -l -c ...
. как я могу преодолеть это препятствие.
Я использую Ubuntu 14.04
пс: это не то же самое, как os.chdir
Заменить 'Run (" CD/SRV/проектируемый/")' с 'os.chdir ("/srv/proj/")' или слить 2 команды как 'run (" cd/srv/proj /; ls ")' – anishsane