control de flujo / testing

  • test y || &&
    • se pueden concatenar comandos con || (OR) o con && (AND)
    • test es equivalente al if, pero no permite bloques de comandos
    • ejemplos:
      • test -x /usr/sbin/anacron || exit 0 → comprueba la existencia del fichero y si devuelve false, ejecuta la segunda parte
      • test -x /usr/sbin/anacron && exit 0 → comprueba la existencia del fichero y si devuelve true, ejecuta la segunda parte
  • if
    • sintaxis: if [ -f /etc/passwd ]; then …. fi
    • parámatros test de ficheros
      • -f → comprueba si existe fichero
      • -d → comprueba si existe directorio
      • -z «$VAR» → comprueba si la variable está vacía
      • -e o -a → existe
      • -h → comprueba si existe el link simbólico
      • -p → comprueba si existe la tubería (pipe)
      • -r → si el fichero el legible (R–)
      • -w → si el fichero el escribible (-W-)
      • -s → si el fichero no está vacío
    • parámetros test de comparación de ficheros
      • -nt → fichero1 más reciente que fichero2
      • -ot → fichero1 más viejo que fichero2
      • -ef → fichero1 es un hard link a fichero2
    • concatenar expresiones
      • -o → OR if [-f /etc/passwd -o -f /etc/shadow ]; then …. fi
      • -a → AND if [-f /etc/passwd -a -f /etc/shadow ]; then …. fi
  • for
    • for ip in `seq 1 254`; do ssh root@10.1.1.${ip} '/sbin/shutdown -r now'; done
  • linux/scripts/utils.txt
  • Darrera modificació: 20/11/2020 07:40
  • per mate