2015-11-20 11 views
-2

В сценариях оболочки bash найдите слово в последних 10 строках файла. Если найдено, выполнить действие, или же сделать еще одно действиеВ скриптах оболочки bash, найдите слово в последних 10 строках файла. Если найдено, выполните действие и еще выполните другое действие.

Я должен искать «сервер начал» в log.out, если найден, необходимо выполнить следующую команду

service httpd start 
+1

попробовать что-то с хвостом и Grep – amdixon

+0

http://stackoverflow.com/help/how-to -ask – Jubobs

+0

Мне нужно найти «Server started» в последних 10 строках файла log.out. Если найдено, необходимо выполнить следующую команду «service httpd start» – Ashik

ответ

1

Этот как вы можете это сделать:

result=`tail --lines=10 log.out | grep "Server started"` 
if [[ "$result" == ""]]; then 
    ... 
else 
    ... 
fi 
0

, что вы можете сделать, это tail и grep, а затем проверить код возврата из команды. Если это 0, это означает, что Grep нашел что-то, сделайте свою логику:

  • набор -q для Grep, так что совпадения не будет распечатан
  • хвост по умолчанию гравюр последние 10 строк, вы можете добавить -n вариант для номера строки тоже.
  • мы можем использовать &&

Соберите их вместе, у нас есть одна строка:

grep -q 'Server started' <(tail -n10 log.out) && service httpd start 

 Смежные вопросы

  • Нет связанных вопросов^_^