Ich versuche, eine benutzerdefinierte. Bashrc Befehl innerhalb meiner Expect-Skript ausführen, aber es erkennt den Befehl nicht. Dies ist offensichtlich, weil jedes Skript in einer eigenen Shell läuft, aber ich bin nicht in der Lage zu source ~/.bashrc
, weil es wieder mit einem invalid command name "-f"
kommt (Nicht sicher, wo es das "-f" bekommt). Hat jemand irgendwelche Empfehlungen, wie man das macht? Auch wenn irgendwelche anderen Probleme offensichtlich sind, dann ignoriere sie bitte, da ich diese selbst herausfinden werde, ich brauche nur Hilfe mit dem spawn
Befehl.Wie verwende ich. Bashrc Befehl innerhalb erwarten Spawn-Befehl
Unten ist mein erwarten Skript ($ USER & $ PASS aus einem anderen Bash-Skript übergeben)
#!/usr/bin/expect
log_file expectLog.log ;#
cd ~/customDirectory
source ~/.bashrc
spawn customCommandName param1 param2
expect -exact "User Name:"
send -- $USER
expect -exact "Password:"
send -- $PASS
'erwarten' basiert auf TCL, eine völlig andere Programmiersprache. Sie können nicht ~/.bashrc 'in einem' expect'-Skript so weit wie Sie können in einem C++ - oder Java-Programm. Erstellen Sie stattdessen ein Shell-Skript, das Ihren benutzerdefinierten Befehl ausführt, und rufen Sie das als externes Programm auf –
@thatotherguy das funktionierte für mich, danke. –