Dies ist das Endziel: Führen Sie einen mysql-Befehl mit dem expect-Skript aus, um das Kennwort zu senden, wenn Sie dazu aufgefordert werden. Es gibt 3 Dateien insgesamtSkript erwarten, dass das Passwort nicht korrekt gesendet wird
- test.sh
- test1.sh
- test.exp
Hier sind die Codes:
test.sh (kehrt die Passwort, das benötigt wird, um eine Verbindung zur MySQL-Datenbank herzustellen)
grep hibernate.connection.password /opt/cisco/cpam/properties/vx.hibernate.properties | sed 's/hibernate.connection.password=//g'
test1.sh (der mysql-Befehl, werden excecuted muss)
mysql -u cpam -p --protocol=tcp vxdb < /opt/cisco/cpam/import/MySQL_Views.sql
test.exp (das Skript erwarten, das Passwort sendet, während mysql-Befehl ausgeführt wird)
set password [exec ./test.sh]
exec ./test1.sh
expect "Enter password: "
send "$password\r"
expect eof
Das Ergebnis von mir läuft erwarten test.exp ist, dass ich nur die Eingabeaufforderung sehe:
Enter password:
kann Jeder Experte mir eine Hand geben, um zu sehen, was falsch läuft? Es bedeutet sicher, dass test1.sh erfolgreich ausgeführt wurde, und ich habe auch viele Male versucht, einschließlich der Verwendung von nur statischen Passwort. Immer noch nur die Eingabeaufforderung.
Vielen Dank!
Ich fühle mich außergewöhnlich dumm .. Danke – Tony