2015-02-04 4 views
0

Я извиняюсь, я действительно посасывать Баш ...Bash - выполнять команды, возвращаемые Grep

Я бегу сервер в Debian, для которого я пытаюсь автоматизировать обслуживание перезагружается, когда они обновляются. Я использую инструмент checkrestart, включенный в пакет debian-goodies.

Все, что удалось сделать до сих пор, чтобы сделать:

checkrestart | grep "^service .* restart" 

, который выводит:

service apache2 restart 
service bind9 restart 
service ssh restart 

Как я могу закончить мой маленький сценарий так, что команды, выдаваемые на самом деле работать?

Спасибо!

+2

Вы можете использовать 'eval' на выходе – anubhava

+0

вот так? 'checkrestart | grep "^ service. * restart" | eval' – PGBI

ответ

0

Вы можете использовать eval. После первоначального расследования я не уверен, можно ли это сделать. Тем не менее, вы все равно должны быть в состоянии использовать это как так:

eval $(checkrestart | grep "^service .* restart" | sed 's/$/;/') 

sed необходимо добавить запятой (;) в конце каждой строки, так что eval будет читать их как отдельные команды.