vault backup: 2025-12-11 01:42:15
This commit is contained in:
2
.obsidian/graph.json
vendored
2
.obsidian/graph.json
vendored
@@ -60,6 +60,6 @@
|
|||||||
"repelStrength": 10,
|
"repelStrength": 10,
|
||||||
"linkStrength": 1,
|
"linkStrength": 1,
|
||||||
"linkDistance": 250,
|
"linkDistance": 250,
|
||||||
"scale": 0.19753086419753046,
|
"scale": 0.2962962962962957,
|
||||||
"close": true
|
"close": true
|
||||||
}
|
}
|
||||||
78
.obsidian/workspace.json
vendored
78
.obsidian/workspace.json
vendored
@@ -13,54 +13,12 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "Documentación personal/Mecanica de Unix/Mecánica Unix - Manejo de la shell.md",
|
"file": "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md",
|
||||||
"mode": "source",
|
"mode": "preview",
|
||||||
"source": false
|
"source": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "Mecánica Unix - Manejo de la shell"
|
"title": "Extra"
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "64d234a80b79e625",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "markdown",
|
|
||||||
"state": {
|
|
||||||
"file": "BDD/SQL/Lenguaje de Manupulación de Datos (DML).md",
|
|
||||||
"mode": "source",
|
|
||||||
"source": false
|
|
||||||
},
|
|
||||||
"icon": "lucide-file",
|
|
||||||
"title": "Lenguaje de Manupulación de Datos (DML)"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "407b94c3d0a283b0",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "markdown",
|
|
||||||
"state": {
|
|
||||||
"file": "BDD/SQL/Importación y exportación de base de datos.md",
|
|
||||||
"mode": "source",
|
|
||||||
"source": false
|
|
||||||
},
|
|
||||||
"icon": "lucide-file",
|
|
||||||
"title": "Importación y exportación de base de datos"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "7ff5d9bb1eecd3e1",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "markdown",
|
|
||||||
"state": {
|
|
||||||
"file": "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Arrays asociativos.md",
|
|
||||||
"mode": "source",
|
|
||||||
"source": false
|
|
||||||
},
|
|
||||||
"icon": "lucide-file",
|
|
||||||
"title": "Arrays asociativos"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -209,12 +167,12 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "outgoing-link",
|
"type": "outgoing-link",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Funciones puras.md",
|
"file": "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md",
|
||||||
"linksCollapsed": false,
|
"linksCollapsed": false,
|
||||||
"unlinkedCollapsed": true
|
"unlinkedCollapsed": true
|
||||||
},
|
},
|
||||||
"icon": "links-going-out",
|
"icon": "links-going-out",
|
||||||
"title": "Enlaces salientes de Funciones puras"
|
"title": "Enlaces salientes de Extra"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -264,29 +222,31 @@
|
|||||||
},
|
},
|
||||||
"active": "e615f9321ff830be",
|
"active": "e615f9321ff830be",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"Documentación personal/Mecanica de Unix/Mecánica Unix - Manejo de la shell.md",
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md",
|
||||||
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Procesos hijos y paralelismo.md",
|
||||||
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Señales.md",
|
||||||
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md",
|
||||||
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Funciones puras.md",
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Arrays asociativos.md",
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Arrays asociativos.md",
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Expansión de parámetros.md",
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Expansión de parámetros.md",
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md",
|
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Patrones de diseño en Bash.md",
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Patrones de diseño en Bash.md",
|
||||||
"Documentación personal/Mecanica de Unix/Sin nombre",
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Seguridad en scripts.md",
|
||||||
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Subshells.md",
|
||||||
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Trampas (traps).md",
|
||||||
|
"README.md",
|
||||||
|
"BDD/SQL/SQL.md",
|
||||||
|
"Documentación personal/Mecanica de Unix/Mecánica Unix - Manejo de la shell.md",
|
||||||
"BDD/SQL/Importación y exportación de base de datos.md",
|
"BDD/SQL/Importación y exportación de base de datos.md",
|
||||||
|
"BDD/SQL/Lenguaje de Manupulación de Datos (DML).md",
|
||||||
|
"Documentación personal/Mecanica de Unix/Sin nombre",
|
||||||
"BDD/SQL/Lenguaje de definición de datos (DDL).md",
|
"BDD/SQL/Lenguaje de definición de datos (DDL).md",
|
||||||
"BDD/SQL/Diario/Clase 4 de diciembre.md",
|
"BDD/SQL/Diario/Clase 4 de diciembre.md",
|
||||||
"BDD/SQL/Sintaxis (Keywords).md",
|
"BDD/SQL/Sintaxis (Keywords).md",
|
||||||
"BDD/SQL/Tipos de datos.md",
|
"BDD/SQL/Tipos de datos.md",
|
||||||
"BDD/SQL/Procedimientos almacenados.md",
|
"BDD/SQL/Procedimientos almacenados.md",
|
||||||
"BDD/SQL/Lenguaje de Manupulación de Datos (DML).md",
|
|
||||||
"Documentación personal/Mecanica de Unix/2. awk-sed-grep/Parsing avanzado de logs.md",
|
"Documentación personal/Mecanica de Unix/2. awk-sed-grep/Parsing avanzado de logs.md",
|
||||||
"BDD/SQL/SQL.md",
|
|
||||||
"Servidores/M5/Actividades/RA2/M5RA2P1.md",
|
"Servidores/M5/Actividades/RA2/M5RA2P1.md",
|
||||||
"README.md",
|
|
||||||
"Servidores/M5/M5 - ASIX.md",
|
"Servidores/M5/M5 - ASIX.md",
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md",
|
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Funciones puras.md",
|
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Procesos hijos y paralelismo.md",
|
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Seguridad en scripts.md",
|
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Señales.md",
|
|
||||||
"conflict-files-obsidian-git.md",
|
"conflict-files-obsidian-git.md",
|
||||||
"Servidores/M5/Actividades",
|
"Servidores/M5/Actividades",
|
||||||
"Servidores/M5/Actividades/RA2",
|
"Servidores/M5/Actividades/RA2",
|
||||||
@@ -294,8 +254,6 @@
|
|||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/calculadora_modular.sh",
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/calculadora_modular.sh",
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios",
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios",
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras",
|
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras",
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Subshells.md",
|
|
||||||
"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Trampas (traps).md",
|
|
||||||
"Documentación personal/Mecanica de Unix/2. awk-sed-grep",
|
"Documentación personal/Mecanica de Unix/2. awk-sed-grep",
|
||||||
"Sin título.base",
|
"Sin título.base",
|
||||||
"Documentación personal/Mecanica de Unix/Bash Scripting/Sin nombre",
|
"Documentación personal/Mecanica de Unix/Bash Scripting/Sin nombre",
|
||||||
|
|||||||
@@ -2,3 +2,40 @@
|
|||||||
Proveniente de [[Mecánica Unix - Manejo de la shell]]
|
Proveniente de [[Mecánica Unix - Manejo de la shell]]
|
||||||
|
|
||||||
---
|
---
|
||||||
|
## Control de flujo
|
||||||
|
---
|
||||||
|
### Condicionales `if`, `elif`, `else` y `fi`
|
||||||
|
```Shell
|
||||||
|
if [[ "$num" -gt 10 ]]; then
|
||||||
|
echo "Mayor que 10"
|
||||||
|
elif [[ "$num" -eq 10 ]]; then
|
||||||
|
echo "Es 10"
|
||||||
|
else
|
||||||
|
echo "Es menor que 10"
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### `[[ . . . ]]`
|
||||||
|
```Shell
|
||||||
|
if [[ "$x" == "hola" && -n "$x" ]]; then
|
||||||
|
echo "coincide"
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### `!` (negación)
|
||||||
|
``` Shell
|
||||||
|
if ! grep -q "hola" archivos.txt; then
|
||||||
|
echo "no existe hola"
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,66 @@ Proveniente de [[Funciones puras]]
|
|||||||
# 1. Calculadora modular
|
# 1. Calculadora modular
|
||||||
Objetivo: Separación de lógica (pura) del I/O (impuro).
|
Objetivo: Separación de lógica (pura) del I/O (impuro).
|
||||||
|
|
||||||
|
```Shell
|
||||||
|
#!/bin/bash
|
||||||
|
#Funciones Puras
|
||||||
|
suma() {
|
||||||
|
local num1=$1
|
||||||
|
local num2=$2
|
||||||
|
echo $(( $num1 + $num2 ))
|
||||||
|
}
|
||||||
|
|
||||||
|
resta() {
|
||||||
|
local num1=$1
|
||||||
|
local num2=$2
|
||||||
|
echo $(( $num1 - $num2 ))
|
||||||
|
}
|
||||||
|
|
||||||
Bibliografia Web:
|
multiplicacion() {
|
||||||
|
local num1=$1
|
||||||
|
local num2=$2
|
||||||
|
echo $(( $num1 * $num2 ))
|
||||||
|
}
|
||||||
|
|
||||||
|
division() {
|
||||||
|
local num1=$1
|
||||||
|
local num2=$2
|
||||||
|
if [[ "$num2" -eq 0 ]]; then
|
||||||
|
echo "ERROR_DIV_0"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
echo $(( $num1 / $num2 ))
|
||||||
|
}
|
||||||
|
|
||||||
|
#Menu
|
||||||
|
|
||||||
|
echo "Opciones posibles:"
|
||||||
|
echo "1. Sumar"
|
||||||
|
echo "2. Restar"
|
||||||
|
echo "3. Multiplicacion"
|
||||||
|
echo "4. Division"
|
||||||
|
read input
|
||||||
|
read -p "Introduce el primer numero: " a
|
||||||
|
read -p "Introduce el segundo numero: " b
|
||||||
|
|
||||||
|
case $input in
|
||||||
|
1) resultado=$(suma "$a" "$b");;
|
||||||
|
2) resultado=$(resta "$a" "$b");;
|
||||||
|
3) resultado=$(multiplicacion "$a" "$b");;
|
||||||
|
4) resultado=$(division "$a" "$b")
|
||||||
|
if [[ $b -eq 0 ]]; then
|
||||||
|
echo "No se puede dividir entre 0"
|
||||||
|
exit 1
|
||||||
|
fi;;
|
||||||
|
*)
|
||||||
|
echo "no valido"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "Resultado = $resultado"
|
||||||
|
```
|
||||||
|
|
||||||
|
Bibliografía Web:
|
||||||
- [Manejo de errores en Bash Scripting](https://adictosalinux.com/manejo-errores-scripts-bash/)
|
- [Manejo de errores en Bash Scripting](https://adictosalinux.com/manejo-errores-scripts-bash/)
|
||||||
|
- [Comparator operators](https://www.tutorialkart.com/bash-shell-scripting/bash-comparison-operators/)
|
||||||
|
- [Funciones Bash](https://itsfoss.com/es/funciones-bash/)
|
||||||
|
|||||||
@@ -1,44 +1,62 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
#Funciones Puras
|
||||||
|
suma() {
|
||||||
|
local num1=$1
|
||||||
|
local num2=$2
|
||||||
|
echo $(( $num1 + $num2))
|
||||||
|
}
|
||||||
|
|
||||||
|
resta() {
|
||||||
|
local num1=$1
|
||||||
|
local num2=$2
|
||||||
|
echo $(( $num1 - $num2))
|
||||||
|
}
|
||||||
|
|
||||||
|
multiplicacion() {
|
||||||
|
local num1=$1
|
||||||
|
local num2=$2
|
||||||
|
echo $(( $num1 * $num2))
|
||||||
|
}
|
||||||
|
|
||||||
|
division() {
|
||||||
|
local num1=$1
|
||||||
|
local num2=$2
|
||||||
|
if [[ "$num2" -eq 0 ]]; then
|
||||||
|
echo "ERROR_DIV_0"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
echo $(( $num1 / $num2))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Menu
|
||||||
echo "Opciones posibles:"
|
echo "Opciones posibles:"
|
||||||
echo "1. Sumar"
|
echo "1. Sumar"
|
||||||
echo "2. Restar"
|
echo "2. Restar"
|
||||||
echo "3. Multiplicacion"
|
echo "3. Multiplicacion"
|
||||||
echo "4. Division"
|
echo "4. Division"
|
||||||
read input
|
read input
|
||||||
|
|
||||||
|
read -p "Introduce el primer numero: " a
|
||||||
|
read -p "Introduce el segundo numero: " b
|
||||||
|
|
||||||
case $input in
|
case $input in
|
||||||
1) $suma;;
|
1) resultado=$(suma "$a" "$b");;
|
||||||
2) $resta;;
|
2) resultado=$(resta "$a" "$b");;
|
||||||
3) $multiplicacion;;
|
3) resultado=$(multiplicacion "$a" "$b");;
|
||||||
4) $division;;
|
4) resultado=$(division "$a" "$b")
|
||||||
|
if [[ $b -eq 0 ]]; then
|
||||||
|
echo "No se puede dividir entre 0"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "no valido"
|
||||||
|
exit 1;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
echo "Resultado = $resultado"
|
||||||
|
|
||||||
suma() {
|
|
||||||
local num1=$1
|
|
||||||
local num2=$2
|
|
||||||
echo $(( $1 + $2))
|
|
||||||
}
|
|
||||||
|
|
||||||
resta() {
|
|
||||||
local num1=$1
|
|
||||||
local num2=$2
|
|
||||||
echo $(( $1 - $2))
|
|
||||||
}
|
|
||||||
|
|
||||||
multiplicacion() {
|
|
||||||
local num1=$1
|
|
||||||
local num2=$2
|
|
||||||
echo $(( $1 * $2))
|
|
||||||
}
|
|
||||||
|
|
||||||
division() {
|
|
||||||
local num1=$1
|
|
||||||
local num2=$2
|
|
||||||
if [[ "$2" -eq 0 ]]; then
|
|
||||||
echo "ERROR_DIV_0"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
echo $(( $1 / $2))
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user