Die übergabe-variable zu `erwarten` in der bash array

Ich versuche, verwenden Sie eine FOR-Schleife zur Iteration über IP-Adressen (in einem bash-array), loggt sich ein, führt ein Skript aus und beendet dann. Das array heißt ${INSTANCE_IPS[@]}. Der folgende code funktioniert nicht, obwohl, wie expect scheint nicht in der Lage sein zu akzeptieren, die variable $instance.

for instance in ${INSTANCE_IPS[@]}
  do
  echo $instance
  /usr/bin/expect -c '
  spawn ssh root@$instance;
  expect "?assword: ";
  send "<password>\r";
  expect "# ";
  send ". /usr/local/bin/bootstrap.sh\r";
  expect "# ";
  send "exit\r" '
done

Jedoch expect beschwert sich mit:

can't read "instance": no such variable
    while executing
"spawn ssh root@$instance"

Gibt es eine weitere Frage auf stackoverflow sich hier, das nutzt Umwelt-Variablen, um dies zu erreichen, jedoch ist es mir nicht erlaubt, Durchlaufen verschiedene IP-Adressen wie kann ich in einem array.

Jede Hilfe ist willkommen.

Cheers

InformationsquelleAutor user3558925 | 2014-04-23
Schreibe einen Kommentar