Erwarten Argument Handhabung
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?
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.