0 votos

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

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

Quiero encontrar la cantidad de tiempo que una cadena específica ocurre 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 en realidad debería ser DosMenos

pero la parte interna funciona bien

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

resultado

1

1voto

No puedes usar > para comparar números en bash ( > se utiliza para redirigir la salida a un archivo), es necesario ejecutar la comparación como parte de un test / [ de la orden. También la llamada a bc no parece hacer nada, echo "iOS/i" | grep -o iOS | wc -l ya sale 1 .

El fragmento actualizado tiene el siguiente 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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X