Resolver Problema Bash Unary Operator esperado

Resolver Problema Bash Unary Operator esperado
Los errores tienen una cantidad diversa de tipos y razones cuando se trata de programación BASH. Uno de esos errores es el error de "operador unario esperado" en la programación BASH. Al evaluar las expresiones en declaraciones condicionales, puede encontrarse con el problema de "operador unario esperado". Las razones de este error "Bash Unary Operator esperado" podrían ser diversos. Comenzaremos hablando de lo que está creando el problema. Después de eso, revisaremos un par de opciones para resolver este problema. Comencemos con el artículo de hoy creando un nuevo archivo bash en Ubuntu 20.04 sistema. Para esto, necesitamos utilizar la instrucción de "tocar" dentro del terminal de shell y nombrar el archivo "unary.mierda. $ touch unary.mierda
$ nano unary.mierda

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.mierda

Se 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.mierda

Aunque 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.mierda

Para 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.mierda

Como 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.mierda

Otra 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.mierda

Conclusió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.