Я получаю следующую ошибку при запуске над командой из сценария оболочки в CYGWIN.`sed: -e выражение # 1, char 1: unknown command:`, '`
Ошибка:
sed: -e expression #1, char 1: unknown command: `,'
ЕСЛИ Я побежал команду в CMD:
$ sed -n "8937,8946 p" "/cygdrive/c/TEMP/temp_oracle/alert_cert1_copy.log" | egrep -e "ORA-|Shutting down"
Он работает OK - Результат:
ORA-1623 signalled during: ALTER DATABASE DROP LOGFILE GROUP 1...
Shutting down database
ПРИМЕЧАНИЕ: 8937
& 8946
являются номера строк текстовый файл - там, где необходимо проверить шаблоны. Поиск должен быть между этими линиями.
ЕСЛИ Я запускаю команду из сценария оболочки - появляется ошибка выше.
Shell Script:
export alert_file="/cygdrive/c/TEMP/temp_oracle/alert_cert1_copy.log"
export alert_output="/cygdrive/c/cygwin64/home/alert_out.log"
function searchAlertByFilterLN() {
#err1=$(sed -n "${lastLineNum},${totLines} p" $alert_file | egrep -e "ORA-")
err1=$(sed -n "8937,8946 p" $alert_file | egrep -e "ORA-|Shutting down")
if [ -n "$err1" ]; then
echo -e "Errors found:" > $alert_output
echo ------------ >> $alert_output
sed -n "8937,8946 p" $alert_file | egrep -e "ORA-|Shutting down" >> $alert_output
echo "" >> $alert_output
echo "" >> $alert_output
echo -e "Check the details of the errors below. (Details means the surroundig lines of the error message only)" >> $alert_output
echo "-------------------------------------" >> $alert_output
sed -n "8937,8946 p" $alert_file | /usr/bin/egrep -A 5 -B 2 "ORA-|Shutting down" >> $alert_output
fi
}
searchAlertByFilterLN --
echo "function was executed"
С уважением!
Скопируйте и вставьте содержимое вашего сценария, и как вы используете скрипт? – Inian
не заставляйте нас угадывать, покажите вам фактический код сценария, который не сработает. Бьюсь об заклад, вы используете 'sed -n '$ startLineNo, $ endLineNo p" файл "или аналогичный, и что либо варны имеют орфографическую ошибку, либо по какой-то другой причине один или оба не имеют значений. Вы знаете о режиме отладки оболочки, при этом 'set -vx' (и' set + vx' отключается). Это покажет вам строку как выполненную ** с заменой ** переменных на их значения. Удачи. – shellter
Также прочитайте http://stackoverflow.com/help/how-to-ask, http://stackoverflow.com/help/dont-ask, http://stackoverflow.com/help/mcve и возьмите [ tour] (http://stackoverflow.com/tour), прежде чем отправлять больше вопросов здесь. Удачи. – shellter