Я работаю над сценарием, включающим s sh на сервере и выполняю некоторые действия в сеансе tmux. Мой скрипт выглядит примерно так (упрощенная версия):
#!/usr/bin/python
import pexpect
child = pexpect.spawn ('ssh johndoe@1.1.1.1 -p 1111')
child.expect ('Password: ')
child.sendline (password)
child.expect ('Welcome to your .*')
child.sendline('tmux')
child.sendline('ls -la')
Он прекрасно работает до сессии tmux. Проблема возникает, когда я нахожусь внутри сессии tmux. Мой скрипт не может отправить следующую строку.
Я попробовал несколько значений child.expect () после tmux, таких как:
child.expect('\n')
child.expect('$')
и даже
sleep(2)
Не повезло. Я до сих пор не могу отправить следующую строку "ls -la" внутри сеанса tmux.
Какая лучшая практика для этого? Спасибо.