Tengo un script simple para comprobar si la página web contiene una cadena especificada. Parece que:Prueba de igualdad de string de Bash (resultado de comando)
#!/bin/bash
res=`curl -s "http://www.google.com" | grep "foo bar foo bar" | wc -l`
if [[ $res == "0" ]]; then
echo "OK"
else
echo "Wrong"
fi
Como se puede ver, yo estoy mirando para conseguir "OK", pero nos dieron una "incorrecto".
¿Qué tiene de malo?
Si uso if [$ res == "0"], funciona. Si solo uso res = "0" en lugar de res = curl...
, también puede obtener los resultados deseados.
¿Por qué existen estas diferencias?
Gracias, es una buena solución. Pero, como mi pregunta, solo quiero saber por qué [[$ res == "0"]] no funciona en este caso, por lo que puedo evitar cometer los mismos errores en el futuro – kliu
¿Qué ves con 'od -c <<< "$ res" '? ¿Hay caracteres adicionales en el espacio en blanco? –
Sí, tienes razón, hay espacios en blanco en la salida del wc. Gracias. – kliu