Ожидайте обработку аргументов - PullRequest
1 голос
/ 28 октября 2009

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

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

К сожалению, я вернусь can't read "argv1": no such variable. Как можно заставить это работать?

Ответы [ 3 ]

5 голосов
/ 28 октября 2009

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

spawn telnet [lindex $argv 0] 5038

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

4 голосов
/ 28 октября 2009

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

[lindex $argv 0]
0 голосов
/ 18 марта 2016

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

...