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

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

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

  #!`which expect` 

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

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

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

2 Solutions collect form web for “Определение общего интерпретатора для такой программы, как ожидать?”

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

 #!/usr/bin/env expect 

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

Я предлагаю

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

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

  • Невозможно передать переменную bash в качестве аргумента python в bash
  • Проблема с скриптом bash, выполняемая с веб-сайта
  • Добавить временные метки для вывода команды «top»
  • Сравните файлы, которые находятся в каталоге 1, но не в каталоге 2?
  • Как сделать bash встроенным «read» игнорировать прокомментированные или пустые строки?
  • sed string для точного соответствия, содержащего /
  • Как спать до определенной даты и времени?
  • массив сценариев оболочки для элементов файлов
  • Для скобок цикла - синтаксис типа C
  • Почему цикл while пропускает и читает только первую строку?
  • Как открыть терминал, разделить на 9 терминалов и переключиться между ними, используя один скрипт?
  • Linux и Unix - лучшая ОС в мире.