Почему мой сценарий expect не работает в строке 1?
самая первая строка моего сценария expect терпит неудачу. Вот все содержимое моего скрипта, и он терпит неудачу:
#!/usr/bin/expect -f
и он не сходу с
": no such file or directory
как мой ответ. Expect фактически установлен и находится в /usr/bin/, и я запускаю это из root. У меня нет дополнительных пробелов или строк перед знаком#. Конечно, изначально было больше сценария, но он терпит неудачу, прежде чем он доберется до хорошего материала.
4 ответов
попробовал, и вот результат:/usr/bin / expect^M: плохой интерпретатор
возможно ли, что там есть новая строка Windows ("^M"), которая запутывает сценарий? Вы можете попробовать "od", чтобы увидеть, какие символы новой строки после" expect "и" tofromdos " или редактора(например, emacs в режиме hexl), чтобы удалить его. Дополнительные сведения см. На страницах man.
Я имел эту проблему и нашли я не ожидал установлен переводчик! Как ни странно, если вы запустили команду в оболочке, она сработала. Однако через скрипт оболочки я получил ошибку: / usr/bin / expect: плохой интерпретатор: нет такого файла или каталога.
я исправил это, просто установив интерпретатор Expect. Выбранное имя пакета:ожидать libtcl8.6
просто запустите:
sudo apt-get install expect
Я действительно не знаю, ожидаю, если честно, но когда я запускаю это в своей системе, он" работает " нормально. Ничего не происходит, но этого я и ожидал. Я не получаю никакого сообщения об ошибке. Согласно man page,
#!/usr/bin/expect -f
- это правильный способ запуска скрипта. Ожидать потом хлебает копирование скрипта как cmdfile.
способ, которым я получил его, чтобы воспроизвести проблему, состоял в том, чтобы фактически поставить A ^M в конце строки вместо нормальной новой строки (см. ответ и это побудило меня попробовать). Я уверен, что команда vim: set list покажет любые нечетные символы.