加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如果命令输出包含某个字符串,如何测试(在一行中)?

发布时间:2020-12-15 09:24:50 所属栏目:安全 来源:网络整理
导读:在bash的一行中,当/usr/local/bin / monit –version的输出不包含完全为5.5,退出状态为1时,如何返回退出状态0? ! /usr/local/bin/monit --version | grep -q 5.5 (grep返回一个退出状态为0,如果找到一个匹配,否则为1 -q选项“quiet”,告诉它不打印它
在bash的一行中,当/usr/local/bin / monit –version的输出不包含完全为5.5,退出状态为1时,如何返回退出状态0?
! /usr/local/bin/monit --version | grep -q 5.5

(grep返回一个退出状态为0,如果找到一个匹配,否则为1 -q选项“quiet”,告诉它不打印它找到的任何匹配;换句话说,它告诉grep,想要的是它的返回值。在开始处反转整个管道的退出状态。

编辑添加:或者,如果你想在“纯Bash”(而不是调用grep)中这样做,你可以写:

[[ $(/usr/local/bin/monit --version) != *5.5* ]]

([[…]]解释在§3.2.4.2 “Conditional Constructs” of the Bash Reference Manual. * 5.5 *就像在fileglobs:零个或多个字符,加5.5,加零个或多个字符。)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读