Ich versuche, ein Bash-Skript zu tun, die in dieser Art erwarten:Funktion bash Erwarten
spawn etc
expect "something"
send -- "something "
etc
Aber ich würde
send -- function()
Wie zu tun ist das möglich?
Danke
Ich versuche, ein Bash-Skript zu tun, die in dieser Art erwarten:Funktion bash Erwarten
spawn etc
expect "something"
send -- "something "
etc
Aber ich würde
send -- function()
Wie zu tun ist das möglich?
Danke
bash und erwarten verschiedene Sprachen sind, und erwarten in seine Eltern nicht auf magische Weise erreichen einige Code zu greifen.
Wenn Sie jedoch Export die Funktion, können Sie (eventuell) sie verwenden:
bash: definieren die Funktion
$ function foo { echo bar; }
$ foo
bar
scheitern, es zu exportieren, versuchen, es zu verwenden
$ expect
expect1.1> foo
invalid command name "foo"
while executing
"foo"
expect1.2> exec bash -c foo
bash: foo: command not found
while executing
"exec bash -c foo"
expect1.3> exit
Jetzt exportieren Sie die Funktion
$ export -f foo
$ expect
expect1.1> exec bash -c foo
bar
Jetzt können Sie dies tun:
send -- "[exec bash -c your_function]\r"
Aber der Schlüssel ist: exportieren Sie die Funktion, während in der übergeordneten Shell.
Wollen Sie die Ausgabe einer 'bash' Funktion als Argument des' send' Befehls/Befehls verwenden? Ich weiß nicht 'Spaw',' send' und 'etc' Befehle ... Ist es eigentlich ein' expect' Skript anstelle eines 'bash' Skripts? – Jdamian