У меня есть странная ситуация, где задание крона выполняет сценарий и не читает в функцию. Да я знаю, солнечные вспышки.
На серьезной ноте, идея здесь, что я имею .sh
сценарий, который запускает сканирование моей среды. Ниже Вас видят извлечение его. Сценарий успешно создает выходной файл, и я могу найти эту строку echo "Is this line parsed or not?" >> $output
в выводе. Однако следующее эхо, которое находится в функции echo "I'm in the function!" >> $output
не зарегистрирован. Остановка сценария на объявлении функции и вот именно.
Я экранирован. Какие-либо идеи?Спасибо!
.....
touch $output
# with this we are creating an empty file
echo "Is this line parsed or not?" >> $output
function do_the_scan() {
# Load text file lines into a bash array.
echo "I'm in the function!" >> $output
.....
Ваш синтаксис объявления функции является неправильным. Необходимо использовать:
do_the_scan() {
# Load text file lines into a bash array.
echo "I'm in the function!" >> $output
}
…, если скрипт не запущен в Bash с тех пор function
bashism.
Это - демонстрация ошибки в интерактивной оболочке:
> sh
$ function bar() {
sh: 1: Syntax error: "(" unexpected
$
Так или иначе необходимо получить вывод ошибок сценария с помощью перенаправления вывода стандартной погрешности (например. 2> err.log
). Поместите его непосредственно на строку команды в crontab, таким образом, это может зафиксировать ошибки, произведенные интерпретатором сценария.