Ich schreibe ein Expect-Skript, das auf mehreren Betriebssystemen verwendet werden kann, aber das Problem ist
ich kann nicht #!/usr/bin/expect
überall verwenden, also habe ich stattdessen versucht,
#!`which expect`
an der Spitze, aber es scheiterte
[sesiv@itseelm-lx4151 ~]$ ./sendcommand
-bash: ./sendcommand: `which: bad interpreter: No such file or directory
irgendeine Lösung dafür.
Antwort1
Ein Trick, der meistens funktioniert (für Perl-, Python-, PHP-Interpreter und wahrscheinlich auch andere):
#!/usr/bin/env expect
Ich glaube, env
es ist immer drin /usr/bin/
. Viele Interpreter können mittlerweile so laufen. Es gab früher auch andere Hacks, aber sie waren nicht verständlich oder nicht so portierbar.
Antwort2
Ich schlage vor
#!/bin/sh
expect_path="$(which expect)"
"$expect_path" "$0" "$@"
Ich hoffe, das funktioniert; ich kenne die Unterschiede zwischen Bash und Sh nicht.