Ejemplo
Comenzaremos nuestro primer ejemplo para este artículo creando un nuevo código de bash en el "Unary.archivo sh ". Utilizaremos la declaración condicional para la ilustración de este error. Dentro de este archivo de código, hemos agregado el soporte BASH en la primera línea como "#!/bin/bash ". Estamos intentando la declaración de lectura para tomar la entrada del usuario con la opción "-p" y agregar esa entrada a la variable "V."La declaración if-else está aquí para verificar la condición. Está comprobando si el valor ingresado por un usuario en la variable "V" es igual al número 14 o no. Para verificar la igualdad, hemos estado utilizando el operador de comparación "-eq". Si el valor agregado por un usuario coincide con el número 14, la parte "entonces" mostrará "valor coincidente" con la ayuda de una cláusula "Echo". De lo contrario, la parte de lo contrario va a ejecutar su instrucción "Echo" que muestra el mensaje "Valor no coincidente" en el shell. El código está completo aquí, y podemos ejecutarlo ahora.
Después de guardar el código bash, lo ejecutamos con la instrucción bash. Resulta que solicita la entrada del usuario. Un usuario ha agregado el valor "67" en el campo y presionó Enter. Como el valor no coincide con el valor especificado en la condición "if", la parte "más" se ejecutó y se muestra "valor no coincidente", como se presenta en la salida que se muestra a continuación.
$ bash unary.mierdaSe trataba del uso de algún valor numérico para realizar la comparación. Ejecutemos nuestro código una vez más para que ocurra el error "Operador unario esperado" en nuestro shell. Por lo tanto, hemos probado el código una vez más, y en el campo de entrada pidiendo un valor para ingresar, no hemos ingresado nada (lo dejamos en blanco) y presionamos el botón "Ingrese" para continuar. De repente, nos da el error de "operador unario esperado" en la línea 3 del código. Después de eso, simplemente mostró el mensaje "Valor no coincidente" utilizando la parte más de la condición mencionada en el código.
$ bash unary.mierdaAunque hemos encontrado el error "Operador Unario esperado" en el área de salida en el terminal, no podemos reconocer la razón principal de este error. Para encontrar la razón principal de este problema, necesitamos depurar el código de archivo bash. Para eso, debemos usar la opción "-xv" dentro de la instrucción bash seguida del nombre del archivo que comienza con. "/" como se muestra. Depurará cada línea de nuestro código y también mostrará la línea de error. Muestra que la línea de error es "[-eq 14]". No muestra el "$ V" como hemos especificado en el código. La razón de este error es que el uso del espacio hará la expresión del lado izquierdo, yo.mi., "$ V", desaparece de la condición.
$ bash -xv ./unary.mierdaPara evitar que este script arroje el error de "operador unario esperado" en Bash, necesitamos actualizar el código una vez más. Tenemos que agregar las citas dobles alrededor de la expresión de la izquierda "$ V", como lo hemos hecho en la imagen a continuación. El resto del código no cambiará por ahora. Ahora, el código está listo para su uso. Primero tenemos que guardarlo con "Ctrl+S" y salir del archivo con "Ctrl+X."
Después de la ejecución del archivo bash actualizado con la consulta de bash, el usuario ha presionado nuevamente Intro sin ingresar ningún valor en el campo de entrada frente al texto "Ingresar algo". Ahora, se ha eliminado el error esperado del operador unario, pero ha surgido otro error, "Expresión entera", ha surgido. Pero también muestra el mensaje de visualización de que el valor ingresado por un usuario no coincide con el número 14. Entonces, necesitamos averiguar la solución para este error.
$ bash unary.mierdaComo sabemos, hemos estado utilizando el operador de comparación "-eq" para comparar algunos valores con el Integer 14. Lanzará una excepción porque el operador de comparación "-eq" solo está diseñado y utilizado para la comparación de valores o variables de cadena. Para comparar los números de enteros en Bash, necesitamos utilizar el operador de asignación "=" para verificar si los dos valores son iguales o no. Guardemos este código actualizado para ver el resultado.
Después de esta ejecución actualizada del código BASH, el usuario nuevamente no ha ingresado nada y simplemente presionó "ingresar" para continuar. Esta vez, no tenemos ningún error. Esto se debe al uso del operador "=". A cambio, ejecutó la cláusula "else" y mostró un mensaje "valor no coincidente".
$ bash unary.mierdaOtra forma de evitar encontrar el error esperado del operador unario en nuestro shell terminal es usar los soportes dobles "cuadrados" al comienzo y al final de la condición "si" al usar el operador de comparación "-eq" para cualquier tipo de valor. Entonces, lo hicimos como se muestra a continuación.
Después de presionar "Enter", el usuario no recibe ningún error al ejecutar.
$ bash unary.mierdaConclusión
Se trata del uso de diferentes métodos para resolver el error de BASH "Se espera un operador unario."Mientras lo hacemos, hemos encontrado otro error," expresión entera esperada ", y también lo hemos resuelto también. Puede modificar el ejemplo anterior y resolver su error de Bash.