Я развернул ожидаемый скрипт на удаленном сервере, который я хочу запустить через ssh.
ssh user@host 'expect -d ./netopeer_expect.sh' (1)
user@host:~$ cat netopeer_expect.sh
#!/usr/bin/expect
set timeout 5
#spawn netopeer2-cli
spawn ./np2_multi_cli
expect ">"
send "listen --timeout 120\r"
expect "ru_id 0"
send "get-config -D=0 --source running --out /home/user/out.xml\r"
expect ">"
send "exit\r"
expect "$"
Этот код запускает модифицированную версию netopeer2-cli, которую мы называем ./np2_multi_cli.Этот netopeer2-cli имеет собственную оболочку и приглашение типа>.Он работает нормально, когда я делаю это в два шага
ssh user@host
expect -d ./netopeer_expect.sh (2)
Однако сообщение
send "get-config -D=0 --source running --out /home/user/out.xml\r"
обрезается и отправляется как
send "-D=0 --source running --out /home/user/out.xml\r"
С запуска(1) с аргументом -d, который я вижу,
ожидает: "\ u001b [6n" (spawn_id exp3) соответствует шаблону глобуса ">"?нет
Когда я пытаюсь сопоставить первое>.Когда я вместо этого пытаюсь запустить (2), он выглядит так, как должен,
Ожидает: ">" (spawn_id exp4) соответствует шаблону глобуса ">"?да
Я запускаю bash, и кажется, что существуют некоторые проблемы с кодировкой, связанные с символом>.Есть идеи как с этим бороться?
BR Patrik