Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
| linux:bash:estructurasdecontrol [09/04/2012 02:17] – [comparaciones de cadenas alfanuméricas] mate | linux:bash:estructurasdecontrol [31/05/2023 02:25] (actual) – [if/else] mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| = Estructuras de control y bucles | = Estructuras de control y bucles | ||
| ~~NOTOC~~ | ~~NOTOC~~ | ||
| + | |||
| + | == comparaciones de cadenas alfanuméricas (Test Operators, Binary Comparison) | ||
| + | * cadena1 = cadena2 (también cadena1 == cadena2) | ||
| + | * cadena1 != cadena2 | ||
| + | * cadena1 < cadena2 | ||
| + | * cadena1 > cadena2 | ||
| + | * -n cadena1 -> longitud mayor que 0 | ||
| + | * -z cadena1 -> longitud = 0 | ||
| + | * cadena =~ REG_EXP | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | == comparaciones de valores numéricos (Test Operators, Binary Comparison) | ||
| + | * **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** | ||
| + | |||
| + | == comprobación atributos de fichero (Test Operators, Files) | ||
| + | * **-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 | ||
| + | * **-L**? | ||
| + | * **-b** fichero -> fichero existe y es un '' | ||
| + | * **-c** fichero -> fichero existe y es un '' | ||
| + | * **-p** fichero -> fichero -> fichero existe y es un '' | ||
| + | * **-S** fichero -> fichero existe y es un '' | ||
| + | * **-t** fichero -> fichero existe y está asociado a un terminal | ||
| + | * **-N** fichero -> fichero existe y ha sido modificado desde su última lectura | ||
| + | |||
| + | |||
| + | * **-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 | ||
| + | * **-g** fichero -> tiene el SGID | ||
| + | * **-u** fichero -> tiene el SUID | ||
| + | * **-k** fichero -> tiene el " | ||
| + | |||
| + | |||
| + | * **-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 | ||
| + | * fichero1 **-ef** fichero2 -> el fichero1 y el fichero2 son HARD LINKS al mismo fichero | ||
| + | |||
| + | |||
| + | * '' | ||
| + | * con -c %s -> tamaño del archivo | ||
| + | |||
| + | == concatenación de comparaciones / comprobaciones | ||
| + | * && -> and | ||
| + | * || -> OR | ||
| + | * ! -> NOT | ||
| + | |||
| + | /vía: [[http:// | ||
| + | |||
| == estructuras | == estructuras | ||
| - | * if/ | + | === if/else | 
| + | [[https:// | ||
| + | {{: | ||
| + | |||
| + | < | ||
| if condicion | if condicion | ||
| then | then | ||
| Línia 10: | Línia 82: | ||
| else | else | ||
| comandos | comandos | ||
| - | fi | + | fi</ | 
| - | DIRECTORIO="/ | + | <code bash; example>DIRECTORIO="/ | 
| COMANDO="/ | COMANDO="/ | ||
| Línia 20: | Línia 92: | ||
| fi | fi | ||
| </ | </ | ||
| - | * for< | + | === if (ternary operator) | 
| + | <code bash; example> | ||
| + | # a = b==5 ? c : d</ | ||
| + | <code bash; example> | ||
| + | <code bash; example> | ||
| + | === for | ||
| + | < | ||
| for nombre [in lista] | for nombre [in lista] | ||
| do | do | ||
|  |  | ||
| done | done | ||
| + | </ | ||
| + | <code bash; example> | ||
| LISTA=" | LISTA=" | ||
| for directorio in $LISTA | for directorio in $LISTA | ||
| Línia 32: | Línia 111: | ||
| done | done | ||
| </ | </ | ||
| - |  | + | <code bash; example> | 
| + | === while | ||
| + | < | ||
| while condición | while condición | ||
| do | do | ||
|  |  | ||
| done | done | ||
| + | </ | ||
| + | <code bash; example> | ||
| NUM=0 | NUM=0 | ||
| while [ $NUM -gt 10]; do | while [ $NUM -gt 10]; do | ||
| Línia 43: | Línia 125: | ||
| done | done | ||
| </ | </ | ||
| - | * until< | + | === while | 
| + | <code bash; example> | ||
| + | === until | ||
| + | < | ||
| until condición | until condición | ||
| do | do | ||
|  |  | ||
| done | done | ||
| + | </ | ||
| + | <code bash; example> | ||
| NUM=0 | NUM=0 | ||
| until [ $NUM -gt 10]; do | until [ $NUM -gt 10]; do | ||
| Línia 54: | Línia 140: | ||
| done | done | ||
| </ | </ | ||
| - | * case< | + | === case | 
| + | < | ||
| case expresion in | case expresion in | ||
| case1) | case1) | ||
| Línia 62: | Línia 149: | ||
| ... | ... | ||
| esac | esac | ||
| + | </ | ||
| + | <code bash; example> | ||
| for NUM in 0 1 2 3 | for NUM in 0 1 2 3 | ||
| do | do | ||
| Línia 74: | Línia 162: | ||
| </ | </ | ||
| * select | * select | ||
| - | == comparaciones de cadenas alfanuméricas (Test Operators, Binary Comparison) | + |  | 
| - |  | + | |
| - | * cadena1 != cadena2 | + | |
| - | * cadena1 < cadena2 | + | |
| - | * cadena1 > cadena2 | + | |
| - | * -n cadena1 -> longitud mayor que 0 | + | |
| - | * -z cadena1 -> longitud = 0 | + | |
| - | == comparaciones de valores numéricos (Test Operators, Binary Comparison) | + | |
| - | * **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** | + | |
| - | + | ||
| - | == comprobación atributos de fichero | + | |
| - | * **-d** fichero | + | |
| - | * **-e** fichero | + | |
| - | * **-f** fichero | + | |
| - | * **-s** fichero | + | |
| - | * **-h** fichero | + | |
| - | + | ||
| - | * **-r** fichero | + | |
| - | * **-w** fichero | + | |
| - | * **-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 | + | |
| - | + | ||
| - | * '' | + | |
| - | * con -c %s -> tamaño del archivo | + | |
| - | == concatenación de comparaciones / comprobaciones | + | |
| - | * && -> and | + | |
| - | * || -> OR | + | |
| - | * ! -> NOT | + | |
| - | + | ||
| - | /vía: [[http:// | + | |