Я хотел бы быть в состоянии передать длинную команду, чтобы ожидать.Это как-то множественная команда.Сначала вот мой ожидаемый сценарий
#!/usr/bin/expect -f
set timeout -1
spawn telnet xxx.xxx.xxx.xxx
expect "*?username:*"
send "someusername\r"
expect "*?assword:*"
send "somepassword\r"
# Here's the command I'd like to pass from the command prompt
set command [lindex $argv 0]
send "$command\r"
send "exit\r"
Затем я запустил бы этот сценарий так:
./expectscript "mkdir /usr/local/dir1\ncd /usr/local/dir1\ntouch testfile"
Обратите внимание, что я поставил "\ n", чтобы инициировать ввод, как будтоОбрабатываю команду перед переходом к следующему.
Я знаю, что вы можете разделить команды с помощью ";", но для этого конкретного упражнения я бы хотел иметь возможность интерпретировать "\ n"с "\ r", так что ожидаемый будет вести себя так, как если бы это было так:
send "mkdir /usr/local/dir1\r"
send "cd /usr/local/dir1\r"
send "touch testfile\r"
Тогда возникает вопрос: как можно ожидать, что интерпретация "\ n" будет "\ r"?Я попытался поставить "\ r" в аргументе вместо "\ n", но это не сработало.
Спасибо за ввод.