Назад | Перейти на главную страницу

Нет такой ошибки файла или каталога при попытке выполнить сценарий запуска в Debian

Очень новичок в Debian (Raspbian), и я бьюсь над этим несколько дней. У меня есть сценарий запуска, который я хочу выполнить при запуске.

Я выполнил следующие команды, чтобы сделать скрипт исполняемым и добавить его с параметрами по умолчанию в последовательность запуска.

sudo chmod 755 /etc/init.d/testsam
sudo update-rc.d testsam defaults

При попытке протестировать скрипт я выполняю следующее:

sudo /etc/init.d/testsam start

Но при этом я получаю сообщение об ошибке: невозможно выполнить /etc/init.d/testsam: нет такого файла или каталога.

Я свернул сценарий до самого простого, но до сих пор не понимаю истинной причины. Надеюсь, кто-нибудь подскажет мне правильное решение? Это текущий сценарий.

#! /bin/bash

# /etc/init.d/testsam

case "$1" in
 start)
        #echo "starting script"
        ;;
 stop)
        #echo "stopping script"
        ;;
 *)
        #echo "Usage: /etc/init.d/testsam {start|stop}"
        exit 1
         ;;
esac

exit 0

Спасибо за любую помощь

У вас наверняка есть возврат каретки (^M) в конце вашего #! линия.

Формат #! строка очень строгая, и возврат каретки не допускается, если только ваш интерпретатор не вызывается /bin/bash^M

В файле, созданном с помощью подходящего редактора unix, никогда не будет возврата каретки, если вы не приложите все усилия, чтобы добавить их.

При редактировании существующего файла, в котором уже используются окончания строк CRLF, символы возврата каретки могут быть скрыты от вас. Например, это делает vim. Но это также говорит [dos] в строке состояния, чтобы предупредить вас о том, что файл находится в формате DOS. Затем вы можете сказать :set fileformat=unix и сохраните файл, чтобы преобразовать его.