Вопрос

Я хотел бы создать сценарий ожидания, который подключается к серверу через telnet и выполняет некоторую авторизацию. У меня проблема с использованием параметров скрипта. Исходя из человека, я ожидал, что это сработает:

#!/usr/bin/expect -f
spawn telnet $argv1 5038
...

К сожалению, я вернулся не могу прочитать " argv1 " ;: нет такой переменной . Как это сделать?

Это было полезно?

Решение

$ argv - это список Tcl, содержащий параметры командной строки, индексированные начиная с 0. Вы хотите:

[lindex $argv 0]

Другие советы

Аргументы строки команды представлены в виде списка в переменной argv, вы можете использовать lindex, чтобы получить элемент из этого списка, поэтому, если первый аргумент - это узел, к которому следует подключиться через telnet, выполните:

spawn telnet [lindex $argv 0] 5038

См. переменные, предоставленные оболочкой , в оболочках и lindex в списках

Я получил похожую ошибку, не могу прочитать " argv0 " ;: нет такой переменной , когда я попытался использовать $ argv0 в процедуре. Решение состояло в том, чтобы получить к нему явный доступ из глобального пространства имен, используя $ :: argv0 .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top