[: Operador inesperado en la programación de shell [duplicado]
Mi código:
#!/bin/sh
#filename:choose.sh
read choose
[ "$choose" == "y" -o "$choose" == "Y" ] && echo "Yes" && exit 0
[ "$choose" == "n" -o "$choose" == "N" ] && echo "No" && exit 0
echo "Wrong Input" && exit 0
Pero cuando ejecuto
sh ./choose.sh
terminal me avisa que
[: 4: n: :Unexpected operator
[: 5: n: :Unexpected operator
¿Hay algún error en mi script bash? ¡Gracias!
Aceptado
No hay ningún error en su script bash . Pero lo estas ejecutando con sh
que tiene una sintaxis menos extensa
Por lo tanto, necesitarás ejecutar bash ./choose.sh
en su lugar o convertir el script para usar sh
solo comandos compatibles con POSIX, como =
entre cadenas en lugar de ==
.
POSIX sh no entiende ==
la igualdad de cadenas, ya que eso es un bash -ismo. Úselo =
en su lugar.
Las otras personas que dicen que sh no admite corchetes están equivocadas, por cierto.