В сценариях оболочки bash найдите слово в последних 10 строках файла. Если найдено, сделайте действие, а затем сделайте другое действие
В сценариях оболочки bash найдите слово в последних 10 строках файла. Если найдено, сделайте действие или сделайте другое действие
Я должен искать "Сервер запущен" в log.out, если найден, необходимо выполнить следующую команду
service httpd start
2 ответа
Вот как вы можете это сделать:
result=`tail --lines=10 log.out | grep "Server started"`
if [[ "$result" == ""]]; then
...
else
...
fi
Что вы можете сделать, это tail
а также grep
, затем проверьте код возврата из команды. Если это 0
значит, grep что-то нашел, сделай свою логику:
- задавать
-q
для grep, так что никакие совпадения не будут распечатаны - tail по умолчанию печатает последние 10 строк, можно добавить
-n
опция для номера строки тоже. - мы можем использовать
&&
Соберите их вместе, у нас есть одна строка:
grep -q 'Server started' <(tail -n10 log.out) && service httpd start