Неожиданный конец ошибки файла при выполнении сценария

Это служит, прежде всего, в качестве проверки, что ящик для инструментов POSIX доступен как внутри, так и снаружи оболочки (см. объяснение POSIX для требования их).

Для cd, это не чрезвычайно полезно, но отметьте это cd каталоги изменений, но имеют другие побочные эффекты: это возвращает статус выхода, который помогает определить, можете ли Вы chdir() к тому каталогу или нет, и выводы полезное сообщение об ошибке, объясняющее, почему Вы не можете chdir() когда Вы не можете.

Пример:

dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} \; -print)

Другой потенциальный побочный эффект является автомонтированием каталога.

В нескольких системах большинство внешних команд для стандартной оболочки builtins реализовано как символьная ссылка на тот же сценарий, который делает:

#! /bin/sh -
"${0##*/}" "$@"

Это - запуск оболочка и выполняет встроенное в нем.

Некоторые другие системы (как GNU), имейте утилиты, как истинный исполняемый файл управляет, который может привести к беспорядкам, когда поведение отличается от оболочки встроенная версия.

1
05.02.2017, 21:57
1 ответ

Необходимо закрыть оператор "if" со словом fi.

#!/bin/bash

echo "Search for MMSC or WAP connectivity errors"

sftpErrorCount=$(tail -100 3_ERRORs_log.txt | grep "MMSC_Upload2" |
   grep "Fail to copy"| awk '{print $1 " " $2" " $3" " $4}'| wc -l)

if [ "$sftpErrorCount" -gt 0 ] ; then
    sftpErrorDate=$(tail -100 3_ERRORs_log.txt | grep "MMSC_Upload2" |
      grep "Fail to copy"| awk '{print $1 " " $2" " $3" " $4}'| tail -1)
    echo "Error found at around $sftpErrorDate please check FTP logs"
else
    echo "No errors found"
fi
# ^ This closes the block.

Также обратите внимание, что я внес несколько изменений моделирования в Ваш сценарий. Добавление отступа может сделать ошибки как они легче найти.

2
27.01.2020, 23:39
  • 1
    Большое спасибо evan! Я думаю, что должен отдохнуть некоторое время, это ошибка смущения! –  dimas 25.07.2013, 04:56

Теги

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