python
  • subprocess
  • rsh
  • 2012-02-02 2 views 3 likes 
    3

    Я пытаюсь запустить питон скрипт, и мне нужно РШ команду из сценария, то команда, которую я хочу, чтобы запустить это: df -Pk|grep "sd\|md"|gawk '{print $2}'команду Выполнить с помощью RSH на удаленном компьютере

    и я делаю это, как -

    cmd2='df -Pk|grep \\\"sd\|md\\\"|gawk \'{print $2}\'' 
    process = subprocess.Popen(['rsh',ip,cmd2],stdout=subprocess.PIPE) 
    output = process.communicate()[0] 
    

    Однако, когда я запускаю сценарий, я ничего не получаю на выходе.

    Я новичок в python и, насколько я знаю, проблема с escape-символами.

    Любая помощь будет замечательной.

    Примечание: я должен использовать только RSH и не могу использовать SSH

    Благодаря

    +0

    Разве вы не пропустили обратную косую черту, чтобы избежать ее после sd – Sid

    +0

    Пробовали ли вы использовать более простую команду, например ls, для проверки связи? Вы пытались выполнить команду df/grep локально? –

    +0

    @Sid К сожалению, это была опечатка. – sudologin

    ответ

    0

    Заключите команду, с надлежащей оболочкой цитировала, в тройных кавычках:

    """df -Pk|grep "sd\|md"|gawk '{print $2}'""" 
    

    Смотрите также Учебник Python bit on strings.

    +0

    @ jdi: вы удалили '\' before '|', что изменило значение 'grep' RE. –

    +0

    снят lol. Я только думал о форматировании строк самостоятельно и забыл рассмотреть подпроцесс :-) – jdi

    +0

    @larsmans Спасибо за ссылку. Однако тройные цитаты не помогли. – sudologin

     Смежные вопросы

    • Нет связанных вопросов^_^