Frage

würde Ich mag eine erstellen erwarten Skript, das mit dem Server über Telnet-Verbindung und hat einige Berechtigung. Ich habe ein Problem mit obwohl Skript Parameter angeben können. Basierend auf den Menschen erwartete ich dies funktioniert:

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

Leider bekomme ich can't read "argv1": no such variable zurück. Wie kann diese Arbeit machen?

War es hilfreich?

Lösung

$argv ist eine Tcl-Liste der Befehlszeilenparameter zu halten, beginnend indiziert von 0. Sie wollen:

[lindex $argv 0]

Andere Tipps

commmand Zeilenargumente werden als Liste in Variable argv versehen, können Sie lindex verwenden, um ein Element aus dieser Liste zu bekommen, so dass, wenn das erste Argument der Host Telnet, sind:

spawn telnet [lindex $argv 0] 5038

Siehe Shell bereitgestellt Variablen Shells und lindex Listen rel="nofollow

Ich habe einen ähnlichen Fehler, can't read "argv0": no such variable, als ich versuchte, argv0 in einem proc $ zu verwenden. Die Lösung bestand darin explizit Zugriff aus dem globalen Namensraum von $::argv0 verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top