Bash - 运行 grep 返回的命令
Bash - run commands returned by grep
对不起,我真的很烂 bash...
我正在 运行安装一个 debian 服务器,我尝试在更新时自动重新启动服务。我使用 debian-goodies 包中包含的工具 checkrestart
。
到目前为止,我所做的一切都是:
checkrestart | grep "^service .* restart"
输出:
service apache2 restart
service bind9 restart
service ssh restart
我怎样才能完成我的小脚本,使输出的命令实际上是 运行?
谢谢!
您可以使用 eval
。根据初步调查,我不确定是否可以通过管道传输到它。但是,您应该仍然可以像这样使用它:
eval $(checkrestart | grep "^service .* restart" | sed 's/$/;/')
sed
需要在每行末尾添加分号 (;
),以便 eval
将它们作为单独的命令读取。
checkrestart | grep "^service .* restart" | bash -v
对不起,我真的很烂 bash...
我正在 运行安装一个 debian 服务器,我尝试在更新时自动重新启动服务。我使用 debian-goodies 包中包含的工具 checkrestart
。
到目前为止,我所做的一切都是:
checkrestart | grep "^service .* restart"
输出:
service apache2 restart
service bind9 restart
service ssh restart
我怎样才能完成我的小脚本,使输出的命令实际上是 运行?
谢谢!
您可以使用 eval
。根据初步调查,我不确定是否可以通过管道传输到它。但是,您应该仍然可以像这样使用它:
eval $(checkrestart | grep "^service .* restart" | sed 's/$/;/')
sed
需要在每行末尾添加分号 (;
),以便 eval
将它们作为单独的命令读取。
checkrestart | grep "^service .* restart" | bash -v