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

前端之家收集整理的这篇文章主要介绍了bash – 如果命令输出包含某个字符串,如何测试(在一行中)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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,加零个或多个字符。)

原文链接:https://www.f2er.com/bash/390137.html

猜你在找的Bash相关文章