Lógica en bash

La lógica en bash es un álgebra de boole, al contrario que C bash utiliza el 0 para el valor verdadero o true y el 1,2... 225 para falso, ya que utiliza un char para trabajar con esto(C también) (bash maneja caracteres y cadenas de caracteres).

  1. && and , y
  2. || or , o
  3. ! negación (si es cualquier número diferente de 0 lo convierte en 0 y si es 0 supongo que lo convertirá en 1)

hay un comando test que sirve para resolver comparaciones test cad1 = cad2 devuelve verdadero si son iguales y falso.
Es tan común esta sentencia que se puede escribir también [ cad1 = cad2 ]

    Comparación numérica

  • -gt great than
  • -lt less than
  • -ge great than or equal
  • -le less than or equal
  • -eq equal
  • -ne not equal
  • Comparación de cadenas

  • = devuelve verdadero si las 2 cadenas son iguales
  • != devuelve verdadero si las 2 cadenas son diferentes
  • -n verdadero si la cadena no es nula
  • -z verdadero si la cadena es nula
  • Cuestiones sobre ficheros

  • -a fic si existe devuelve true
  • -b fic si es un dispositivo de bloque devuelve true
  • -c fic si es un dispositivo de caracter devuelve true
  • -e fic igual que a
  • -f fic si es un fichero regular devuelve true
  • -g fic si tiene activo setdig devuelve true
  • -G fic si pertenece al grupo devuelve true
  • -h fic si es un enlace simbólico devuelve true
  • -k fic si tiene activo sticky devuelve true
  • -L fic = -h fic
  • -N fic si se modificó en la ultima lectura devuelve true
  • -o fic = -G fic
  • -p fic si es una pipe devuelve true
  • -r fic si se puede leer devuelve true
  • -s fic si no está vacío devuelve true
  • -u fic si tiene activado setuid devuelve true
  • -w fic si tiene permiso de escritura devuelve true
  • -x fic si permiso de ejecución devuelve true
  • fic1 -nt fic2 compara por fecha de mod now than
  • fic1 -ot fic2 compara por fecha de mod old than
  • fic1 -ef fic2 comprueba si son el mismo fichero equal than