En una línea de bash, ¿cómo devuelvo un estado de salida de 0 cuando la salida de /usr/local/bin/monit --version
no contiene exactamente 5.5
y un estado de salida de 1 cuando lo hace?¿Cómo pruebo (en una línea) si el resultado del comando contiene una cierta cadena?
Respuesta
! /usr/local/bin/monit --version | grep -q 5.5
(grep
devuelve una salida estatus de 0 si se encuentra una coincidencia, y 1 en caso contrario La opción -q
, "tranquilo", dice que no a imprimir cualquier partido que encuentra;. En otras palabras, se dice . grep
que lo único que quiere es su retorno valor la !
al principio invierte la salida-estado de toda la tubería)
Editado para añadir:. Alternativamente, si usted quiere hacer esto en "pura Bash "(en lugar de llamar al grep
), puede escribir:
[[ $(/usr/local/bin/monit --version) != *5.5* ]]
([[...]]
se explica en §3.2.4.2 "Conditional Constructs" of the Bash Reference Manual. *5.5*
es igual que en fileglobs:. Cero o más caracteres, además de 5.5
, además de cero o más caracteres)
[ $(/usr/local/bin/monit --version) == "5.5" ]
EG-1: comprobar para el éxito
[ $(/usr/local/bin/monit --version) == "5.5" ] && echo "OK"
EG-2: comprobar para el fracaso
[ $(/usr/local/bin/monit --version) == "5.5" ] || echo "NOT OK"
o, simplemente comprobar si la salida contiene 5.5
:
[[ $(/usr/local/bin/monit --version) =~ "5.5" ]] || echo "NOT OK"
"5.5" será parte de una salida de mayor cantidad. –
actualizó la respuesta – perreal
@perreal - No puede citar regex en bash, lo convierte en una cadena literal en lugar de una expresión regular. (La cita funciona en algunas versiones anteriores de bash, pero se corrigió como un error). – jordanm
prueba el valor de retorno de grep:
sudo service xyz status | grep 'not' &> /dev/null
if [ $? == 0 ]; then
echo "whateveryouwant"
fi
recomendaría cron, funciona bien con la pila SAL
- 1. Ant: cómo fallar si la propiedad contiene una cierta cadena
- 2. Cómo verificar si un TextView contiene una cierta cadena
- 3. Compruebe si una cadena contiene una subcadena
- 4. Compruebe si una cadena contiene una cadena en C++
- 5. Rieles: cómo buscar_por un campo que contiene una cierta cadena
- 6. SI una celda contiene una cadena
- 7. ejecutando una línea de comando que contiene Tuberías y mostrando el resultado a STDOUT
- 8. ¿Existe un comando integrado Python para determinar si un iterable contiene una cierta secuencia?
- 9. Expresión regular que no contiene cierta cadena
- 10. ¿Cómo encontrar si una matriz contiene una cadena
- 11. Compruebe si una cadena contiene los números
- 12. Si la cadena contiene una barra inclinada
- 13. Cómo determinar si una cadena contiene una subcadena específica
- 14. Compruebe si una cadena contiene Asterisk (*)
- 15. Dividir una cadena que contiene parámetros de línea de comandos en una cadena [] en Java
- 16. ¿Cómo encontrar si un archivo contiene una cadena dada usando la línea de comandos de Windows
- 17. ¿Prueba si una cadena contiene una palabra en PHP?
- 18. cómo encontrar si args maravilloso contiene una cadena en particular
- 19. Cómo comprobar si una cadena contiene espacios en blanco
- 20. ¿Cómo probar si una cadena contiene galimatías en PHP?
- 21. JavaScript: cómo eliminar la línea que contiene una cadena específica
- 22. Análisis/Tokenización de una cadena que contiene un comando SQL
- 23. Determinar si una matriz de cadenas contiene una cierta subcadena en ruby
- 24. Comprueba si el búfer de Emacs actual contiene una cadena
- 25. Cómo capturar el resultado del comando Shell en C#?
- 26. Comprobación de PHP si el archivo contiene una cadena
- 27. Cómo filtrar el resultado de la línea de comando xcodebuild?
- 28. ¿Cómo comprobar si una cadena contiene letras inglesas (A-Z)?
- 29. Ruby: ¿Cómo comprobar si una cadena contiene varios elementos?
- 30. ¿Cómo detectar si una cadena contiene al menos un número?
salvado el pellejo! – mhenrixon
Effing genius! El poder de la tubería es continuamente impresionante. –
¿Hay algún eco para el valor de '/ usr/local/bin/monit --version' cuando falla también? –