Aquesta és una revisió antiga del document


Estructuras de control y bucles

  • if/else
    if condicion
    then
      comandos
    elif condicion
      comandos
    else
      comandos
    fi
    DIRECTORIO="/tmp/test"
    COMANDO="/bin/mkdir $DIRECTORIO"
    
    if $COMANDO then
       echo "OK"
    else
       echo "KO"
    fi
  • for
    for nombre [in lista]
    do
       comandos
    done
    
    LISTA="etc var home"
    for directorio in $LISTA
    do
      ls $directorio
    done
  • while
    while condición
    do
       comandos
    done
    
    NUM=0
    while [ $NUM -gt 10]; do
       let NUM=$NUM+1
    done
  • until
    until condición
    do
       comandos
    done
    
    NUM=0
    until [ $NUM -gt 10]; do
       let NUM=$NUM+1
    done
  • case
    case expresion in
        case1)
           comandos
        case2)
           comandos
        ...
    esac
    
    for NUM in 0 1 2 3
    do
      case $NUM in
        0) echo "cero";
        1) echo "uno";
        2) echo "dos";
        3) echo "tres";
      esac
    done
  • select
  • cadena1 = cadena2 (también cadena1 == cadena2)
  • cadena1 != cadena2
  • cadena1 < cadena2
  • cadena1 > cadena2
  • -n cadena1 → longitud mayor que 0
  • -z cadena1 → longitud = 0
  • x -lt y → x < y
  • x -le y → x ⇐ y
  • x -eq y → x = y
  • x -ge y → x >= y
  • x -gt y → x > y
  • x -ne y → x != y

si se pone entre doble paréntesis:

  • x > y
  • x >= y
  • x < y
  • x ⇐ y
  • -d fichero → fichero existe y es un directorio
  • -e fichero → fichero existe
  • -f fichero → fichero existe y es un fichero regular (no un directorio o fichero especial)
  • -s fichero → fichero existe y no está vacío
  • -h fichero → fichero existe y es un symlink
  • -r fichero → tiene permiso de lectura
  • -w fichero → tiene permiso de escritura
  • -x fichero → tiene permiso de ejecución o de búsqueda si es un directorio
  • -O fichero → eres el OWNER del fichero
  • -G fichero → el GRUPO del fichero es el mismo que el tuyo
  • fichero1 -nt fichero2 → el fichero1 es más reciente que el fichero2
  • fichero1 -ot fichero2 → el fichero1 es más antiguio que el fichero2
  • stat <fichero> → información en disco del fichero
    • con -c %s → tamaño del archivo
  • && → and
  • || → OR
  • ! → NOT

/vía: http://www.linux-es.org/node/238

  • linux/bash/estructurasdecontrol.1333963035.txt.gz
  • Darrera modificació: 09/04/2012 02:17
  • per mate