Задание крона не читает в функцию сценария оболочки

У меня есть странная ситуация, где задание крона выполняет сценарий и не читает в функцию. Да я знаю, солнечные вспышки.

На серьезной ноте, идея здесь, что я имею .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
.....
1
задан 22 February 2018 в 16:56

1 ответ

Ваш синтаксис объявления функции является неправильным. Необходимо использовать:

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, таким образом, это может зафиксировать ошибки, произведенные интерпретатором сценария.

См. также

4
ответ дан 3 December 2019 в 06:52

Другие вопросы по тегам:

Похожие вопросы: