GNU/Linux >> Znalost Linux >  >> Linux

Jak předat argument v Expect přes příkazový řádek v shell skriptu

#!/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

Pokud chcete číst z argumentů, můžete toho dosáhnout jednoduše pomocí

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

A vytisknout

send_user "$username $password"

Tento skript se vytiskne

$ ./test.exp user1 pass1
user1 pass1

Můžete použít režim ladění

$ ./test.exp -d user1 pass1

Lepší způsob by mohl být tento:

lassign $argv arg1 arg2 arg3

Vaše metoda by však měla fungovat také. Zkontrolujte, zda je arg1 je načten. Například s send_user "arg1: $arg1\n" .


Linux
  1. Jak přiřadit výstup příkazu proměnné shellu?

  2. Předat argumenty příkazového řádku skriptu Bash?

  3. Jak předat obsah souboru jako parametr příkazového řádku?

  1. Jak získat přístup k poslednímu argumentu komentovaného příkazu?

  2. 6 Očekávejte příklady argumentů příkazového řádku skriptu

  3. Jak nainstaluji skript pro spuštění kdekoli z příkazového řádku?

  1. Aliasy příkazového řádku v prostředí Linux

  2. Jak předat argument příkazového řádku do skriptu Shell?

  3. Jak předám argument příkazového řádku při spouštění GDB v Linuxu?