Comenzando con bash: argumentos -lt y -gt

Estoy comenzando con bash y encontré lo siguiente:

if test $first -lt $second then echo $first is lower than $second else if test $first -gt $second then echo $first is higher than $second else echo $first and $second are equals fi fi 

Para leer el script y ejecutarlo, sé lo que hace, pero no para qué sirven -lt y -gt.

¿Alguien puede decirme cuál es el nombre de ese tipo de «herramienta» y lo que hacen (-lt y -gt)? Gracias!

Comentarios

  • Lo siento, pero me parece que vale la pena señalar sepa que las echo declaraciones en el código responden a su pregunta.
  • Faltan comillas alrededor de las variables

Respuesta

Es la abreviatura de less than y greater than. Se utiliza para la comparación de enteros en bash. Puede leer más escribiendo man test:

 .... INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 .... INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 .... 

Respuesta

Puede encontrar la definición de -lt y -gt en la documentación del test comando (man test), o en la documentación de bash, ya que test es un comando integrado en bash (como en la mayoría de los otros shells).

-lt y -gt son comparaciones numéricas (menor que [y no igual], mayor-que [y no igual]). También hay operadores menor / mayor o igual -le y -ge, y operadores iguales y no iguales -eq y -ne. Estos son operadores numéricos, por lo que habrá un error si alguno de los lados no es» un número y 9 se considera ered menos que 10.

El motivo por el que se utilizan nombres como -lt en lugar del habitual < es que el carácter < se interpretaría como una redirección. Los operadores = y != también existen, pero realizan una comparación de cadenas: test 00 -eq 0 es true mientras que test 00 = 0 es falso.

Algunas shells, incluido bash, también tienen operadores < y > que realiza una comparación lexicográfica de cadenas, por lo que test 9 \< 10 es falso porque 9 se ordena antes que 1 (la barra invertida evita que el carácter < se interprete como un operador de redirección). Estos shells también ofrecen la sintaxis de doble corchete para pruebas, p. Ej. [[ 9 < 10 ]] (a diferencia de [ 9 \< 10 ]), que «no puede tener redirecciones internas, por lo que < no necesita ser citado.

Respuesta

Son solo operadores.

Simplemente: gt y lt significan> (mayor que) y < (menor que).

Puede mirar aquí para obtener más información sobre los operadores:

Respuesta

Estos son operadores de comparación

-lt = menor que

-gt = mayor que

Puede consultar esta página para más detalles:

http://tldp.org/LDP/abs/html/comparison-ops.html

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *