Я пишу ожидаемый скрипт, который можно использовать на нескольких операционных системах, но проблема в том,
Я не могу использовать #!/usr/bin/expect
везде, поэтому вместо этого я попытался сделать
#!`which expect`
наверху, но это не удалось
[sesiv@itseelm-lx4151 ~]$ ./sendcommand
-bash: ./sendcommand: `which: bad interpreter: No such file or directory
любое решение для этого.
решение1
Один прием, который в большинстве случаев работает (для интерпретаторов Perl, Python, PHP и, возможно, других):
#!/usr/bin/env expect
Я думаю, env
всегда в /usr/bin/
. Многие интерпретаторы теперь могут работать таким образом. Другие хаки существовали, но были непонятны или не были такими уж переносимыми.
решение2
Я предлагаю
#!/bin/sh
expect_path="$(which expect)"
"$expect_path" "$0" "$@"
Надеюсь, это сработает; я не знаком с различиями между bash и sh.