Bash:检查某个命令是否有输出:如果没有在一行上执行install

时间:2018-04-13 07:37:44

标签: bash logstash

在logstash中,您可以检查是否安装了某个插件:

ubuntu@xxx:/usr/share/logstash$ bin/logstash-plugin list | grep logstash-input-cloudwatch_logs
logstash-input-cloudwatch_logs

上面有一个安装(有输出)。 现在,如果没有我想要执行的输出:

sudo bin/logstash-plugin install /home/ubuntu/logstash-input-cloudwatch_logs-1.0.2.gem

否则我什么都不想做。 我需要在一个bash命令中使用它。有可能吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以在if条件下使用grep执行此操作,以查看是否找到匹配项,并在返回失败错误代码时安装缺少的应用

if bin/logstash-plugin list | grep -q logstash-input-cloudwatch_logs > /dev/null 2>&1; then
    sudo bin/logstash-plugin install /home/ubuntu/logstash-input-cloudwatch_logs-1.0.2.gem
fi