Pregunta

Me gustaría crear un script de espera que se conecta al servidor a través de telnet y hace alguna autorización. Sin embargo, tengo un problema con el uso de parámetros de script. Basado en el hombre, esperaba que esto funcionara:

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

Desafortunadamente vuelvo no puede leer " argv1 " ;: no existe tal variable . ¿Cómo puede hacer que esto funcione?

¿Fue útil?

Solución

$ argv es una lista Tcl que contiene los parámetros de la línea de comando, indexados a partir de 0. Desea:

[lindex $argv 0]

Otros consejos

Los argumentos de línea de comando se proporcionan como una lista en la variable argv, puede usar lindex para obtener un elemento de esta lista, por lo que si el primer argumento es el host al que se debe telnet, haga:

spawn telnet [lindex $argv 0] 5038

Consulte Variables proporcionadas por el shell en Shells y lindex en Listas

Recibí un error similar, no puede leer " argv0 " ;: no existe tal variable , cuando intenté usar $ argv0 en un proceso. La solución fue acceder explícitamente desde el espacio de nombres global utilizando $ :: argv0 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top