Ich brauche ein Skript, um die gleichen Daten in mehreren Servern zu ändern. Jetzt erzeugt die for-Schleife die Befehlszeilen, aber ich habe einige Probleme mit expect und pssh.für Schleife, expect und pssh
Die for-Schleife:
<code>
for ((var1=1;var1<=14; var1++))
{
cda stm add "$var1/$var2/$var3" ss 1
for ((var2=1;var2<=8;var2++))
{
cda stm add "$var1/$var2/$var3" ss 1
for ((var3=1; var3<64; var3++))
{
cda stm add "$var1/$var2/$var3" ss 1
}
}
}
</code>
ich pssh in erwarten Skript bin stattdessen ssh.
Der vollständige Code:
<code>
#!/usr/bin/expect
set timeout 20
set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
for ((var1=1;var1<=14; var1++))
{
cda stm add "$var1/$var2/$var3" ss 1
for ((var2=1;var2<=8;var2++))
{
cda stm add "$var1/$var2/$var3" ss 1
for ((var3=1; var3<64; var3++))
{
cda stm add "$var1/$var2/$var3" ss 1
}
}
}
spawn pssh "$user\@$ip"
expect "yes/no" {
send "yes\r"
expect "*?assword" { send "[lindex $argv 2]\r" }
} "*?assword" { send "[lindex $argv 2]\r" }
expect "SH"
interact
</code>
Ich erhalte die folgende Fehlermeldung:
<code>
wrong # args: should be "for start test next command"
while executing
"for ((var1=1"
(file "./ssh" line 9)
</code>
nicht klar, was Ihre Frage ist? Was sind die Probleme, die Sie erleben? Es wird hilfreich sein, es sowohl in der Überschrift als auch in der Kopfzeile zu klären –
Hallo Amittai Shapira, das Problem ist die for-Schleife in einem Expect-Skript. Der Erwartungswert hört auf zu arbeiten oder funktioniert nicht. –
Sie müssen wahrscheinlich weitere Informationen hinzufügen - wann hat es aufgehört zu arbeiten? Was war der Fehler? –