Linux.Shell.Operadores.

Ismael Royano Gómez
Enredando con Linux.
3 min readAug 23, 2018

En esta parte vamos hablar de los distintos operadores que existen en la programación; ariméticos, lógicos, booleanos, string y los file test.

Aritméticos.

  • +. Asignación.
  • -. Substracción.
  • *. Multiplicación.
  • /. División
  • %. Módulo o resto de una división.
  • =. Asignación.
  • ==. Comparación de números.
  • !=. Negación.

Algunos ejemplos:

valor=`expr $a + $b`
valor`expr $a — $b`
valor `expr $a \* $b`
[ $a == $b ]

Hay que tener en cuenta una cosa, Shell es un poco especial y debemos separar siempre los operadores de las variables o dará un error;

¿Que es eso de expr?. Se utiliza para guardar el resultado de una expresión en una variable.

Relacionales.

Este tipo de operadores se utilizan sólo y exclusivamente para cadena de carácteres.

  • -eq. Compara si son iguales dos cadenas. Si lo son devuelve un true.
  • -ne. Compara si son iguales dos cadenas. Si no lo son devuelve un true.
  • -gt. Compara si la cadena de la izquierda es mayor que el de la derecha. Si es así devuelve un true.
  • -lt. Compara si la cadena de la izquierda es menor que el de la derecha. Si es así devuelve un true.
  • -ge. Compara si la cadena de la izquierda es mayor o igual que el de la derecha. Si es así devuelve un true.
  • -le. Compara si la cadena de la izquierda es menor o igual que el de la derecha. Si es así devolverá un true.

Booleanos.

  • !. Niega una comparación.
  • -o. Se utiliza para condiciones compuestas. Si una de las dos se cumple devuelve un verdadero. [ $a -lt 20 -o $b -gt 100 ] .
  • -a. Se utiliza para condiciones compuestas. Si se cumplen las dos condiciones a la vez devuelve un true. [ $a -lt 20 -a $b -gt 100 ].

String.

  • =. Compara los valores y si son iguales devuelve un true.
  • !=. Compara los valores y si es lo contrario que la expresión devuelve un true.
  • -z. Compara si la longitud del valor es 0 y si lo es devuelve un true.
  • -n. Compara si la longitud del valor es distinta de 0. Si es así devuelve un true.
  • str. Compara si la cadena está vacia, si no está vacia devuelve un true.

Files.

Este tipo de operadores sirve para saber las propiedades dadas a un archivo en Linux, es decir, los permisos de lectura, escritura y ejecución.

  • -b file. Establece si el archivo es referente a un dispositivo del sistema, es decir, perteneciente a /dev.
  • -c file. Archivos especiales de tipo carácter.
  • -d file. Que sea un directorio o carpeta.
  • -f file. Que sea un archivo ordinario, es decir, que no sea ni un directorio ni archivo especial.
  • -g file. Comprueba que tenga activo el SGID, es decir, todo archivo que tenga activo el SGID, al ser ejecutado, tendrá los privilegios del grupo al que pertenece.
  • -k file Comprueba si tiene activo el sticky bit.¿Esto que es?. Cuando este bit está activo, hace que un usuario sólo pueda borrar los ficheros que son de su propiedad en dicho directorio.
  • -p file Comprueba que el archivo sea named pipe.
  • -t file Comprueba si el descriptor de archivo está abierto y asociado a una terminal.
  • -u file. Comprueba si el archivo tiene establecido su SUID. El bit SUID activo en un archivo significa que el que lo ejecute va a tener los mismos permisos que el que creó el archivo
  • -r file. Comprueba que el archivo tenga permisos de lectura.
  • -w file. Comprueba que el archivo tenga permisos de escritura.
  • -x file. Comprueba que el archivo tenga permisos de ejecución.
  • -s file Comprueba que el archivo tiene un tamaño mayor de 0.
  • -e file Comprueba que el archivo existe. En el caso que sea un directorio el sistema lo dará por válido.

Continúa por Control de Flujos.

--

--

Ismael Royano Gómez
Enredando con Linux.

Técnico Informático curioso, lector activo de las nuevas tecnologías, amante de las series de televisión y usuario del respetable mundo del enredo.