Esperar manuseio argumento
Pergunta
Eu gostaria de criar um esperar script que se conecta ao servidor via telnet e faz alguma autorização. Eu tenho um problema com o uso de parâmetros de script embora. Baseado no homem que eu esperava que este trabalho:
#!/usr/bin/expect -f
spawn telnet $argv1 5038
...
Infelizmente eu voltar can't read "argv1": no such variable
. Como podem fazer este trabalho?
Solução
$argv
é uma lista Tcl segurando os parâmetros de linha de comando, indexados começando de 0. Você quer:
[lindex $argv 0]
Outras dicas
commmand argumentos de linha são fornecidas como uma lista em argv variável, você pode usar lindex para obter um elemento nesta lista, por isso, se o primeiro argumento é o anfitrião para telnet para, fazer:
spawn telnet [lindex $argv 0] 5038
Veja Shell forneceu as variáveis ?? em Shells e lindex em Listas
Eu tenho um erro semelhante, can't read "argv0": no such variable
, quando eu tentei usar $ argv0 em um proc. A solução foi acessá-lo explicitamente a partir do namespace global usando $::argv0
.