GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So übergeben Sie ein Argument in Expect über die Befehlszeile in einem Shell-Skript

#!/usr/bin/expect
set username [lindex $argv 0]
set password [lindex $argv 1]
log_file -a "/tmp/expect.log"
set timeout 600
spawn /anyscript.sh
expect "username: " { send "$username\r" }
expect "password: " { send "$password\r" }
interact

Wenn Sie aus Argumenten lesen möchten, können Sie dies einfach mit

erreichen
set username [lindex $argv 0];
set password [lindex $argv 1];

Und drucken Sie es aus

send_user "$username $password"

Dieses Skript wird gedruckt

$ ./test.exp user1 pass1
user1 pass1

Sie können den Debug-Modus verwenden

$ ./test.exp -d user1 pass1

Ein besserer Weg könnte dieser sein:

lassign $argv arg1 arg2 arg3

Ihre Methode sollte jedoch auch funktionieren. Überprüfen Sie diesen arg1 abgerufen wird. Zum Beispiel mit send_user "arg1: $arg1\n" .


Linux
  1. Wie übergibt man ein Befehlszeilenargument an ein Shell-Skript?

  2. Wie installiere ich ein Skript, das überall von der Befehlszeile aus ausgeführt werden kann?

  3. Wie erhalte ich den Exit-Code des erzeugten Prozesses im erwarteten Shell-Skript?

  4. BlueZ:Wie man einen GATT-Server von der Kommandozeile aus einrichtet

  5. Linux:Datum über die Befehlszeile festlegen

Linux:So brennen Sie eine CD/DVD über die Befehlszeile

So legen Sie den Standardbrowser unter Debian über die Befehlszeile fest

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript

Wie stelle ich den Standardbrowser über die Befehlszeile ein?

Wie führe ich einen Befehl in einem Shell-Skript aus?

Wie liest man Befehlszeilenargumente in Shell-Skripten?