Я переместил свою систему с ubuntu 9 на debian 5, и cron каждый раз, когда пытается выполнить сценарий, выдает ...
-bash: ./somescript.sh: /bin/sh^M: bad interpreter: No such file or directory
все мои сценарии начинаются с
#!/bin/sh
любая подсказка? мне нужно изменить оболочку, в которой работает cron? он использует другую оболочку?
Который ^M
немного заставляет меня думать, что ваш сценарий использует Окончания строк CR-LF. Обычно это происходит, когда вы редактируете файл с помощью текстового редактора Windows.
Чтобы исправить это, установите пакет tofrodos и преобразуйте файл:
sudo aptitude install tofrodos
fromdos -b /path/to/script.sh
У вас есть возврат каретки в вашем документе (возможно, отредактированном с помощью программы Windows). Вам нужно запустить:
cat somecript.sh | tr -d '\r' > somescript2.sh
Убедитесь, что вы используете новое имя файла, как в моем примере (somescript2.sh
). Вы можете прочитать это Сообщение блога для полной истории.