Convertir la cadena a int no funciona correctamente en el terminal

0

La conversión de la cadena a int no funciona correctamente en el terminal.

Quiero encontrar cuánto tiempo se produce una cadena específica en una cadena grande.

if ((echo "iOS/i" | grep -o iOS/ | wc -l | bc)>2) then echo "ThreeOrMore"; else echo"TwoOrLess"; fi

resultado

ThreeOrMore

Pero el resultado debería ser TwoOrLess

pero la parte interior funciona bien

echo "iOS/i" | grep -o iOS | wc -l | bc

resultado

1
    
pregunta Voloda2 04.04.2015 - 16:44

1 respuesta

1

No puede usar > para comparar números en bash (se usa > para redirigir la salida a un archivo), necesita ejecutar la comparación como parte de un comando test / [ . Además, la llamada a bc no parece hacer nada, echo "iOS/i" | grep -o iOS | wc -l ya genera 1 .

El fragmento de código actualizado tiene este aspecto (dividido en varias líneas para facilitar la lectura):

if [ $(echo "iOS/i" | grep -o iOS/ | wc -l) -gt 2 ]; then
    echo "ThreeOrMore"
else
    echo "TwoOrLess"
fi
    
respondido por el nohillside 04.04.2015 - 16:59

Lea otras preguntas en las etiquetas