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,加零个或多个字符。) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |