Определение общего интерпретатора для такой программы, как ожидать?

Я пишу сценарий ожиданий, который можно использовать в барабанных операционных системах, но проблема в том, что

я не могу использовать #!/usr/bin/expect evreywhere, поэтому вместо этого я попытался сделать

  #!`which expect` 

наверху, но это не удалось

 [sesiv@itseelm-lx4151 ~]$ ./sendcommand -bash: ./sendcommand: `which: bad interpreter: No such file or directory 

любое решение для этого.

Один трюк, который в основном работает (для perl, python, php переводчиков и, возможно, других):

 #!/usr/bin/env expect 

Я думаю, что env всегда находится в /usr/bin/ . Многие интерпретаторы могут работать именно так. Другие хаки имели обыкновение существовать, но были непонятны или не были настолько переносимыми.

Я предлагаю

 #!/bin/sh expect_path="$(which expect)" "$expect_path" "$0" "$@" 

Я надеюсь, что это сработает; Я не знаком с различиями между bash и sh.