clase:daw:si:2eval:tema12
Diferencias
Muestra las diferencias entre dos versiones de la página.
| — | clase:daw:si:2eval:tema12 [2025/11/03 11:37] (actual) – creado - editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| + | ====== 12. Scripts básicos en Linux ====== | ||
| + | |||
| + | |||
| + | |||
| + | ===== VI ===== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | ===== Introducción a los Scripts ===== | ||
| + | Para crear un Script en Linux hay que seguir los siguientes pasos: | ||
| + | * Crear el fichero del Script con la extensión " | ||
| + | |||
| + | vi miscript.sh | ||
| + | |||
| + | * Añadir en la primera línea del fichero lo siguiente (([[https:// | ||
| + | |||
| + | # | ||
| + | o | ||
| + | #!/bin/bash | ||
| + | |||
| + | * Darle permisos de ejecución: | ||
| + | |||
| + | chmod u+x miscript.sh | ||
| + | |||
| + | * Ejecutar el Script con la ruta del directorio actual: | ||
| + | |||
| + | ./ | ||
| + | |||
| + | |||
| + | ===== Parámetros y Variables ===== | ||
| + | |||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | |||
| + | |||
| + | |||
| + | * Principales variables del bash | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | |||
| + | ===== Redirecciones ===== | ||
| + | |||
| + | En Linux se permite hacer la redirección de la entrada y la salida a un fichero y desde un fichero. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | * Redireccionar la salida | ||
| + | |||
| + | find / -name " | ||
| + | |||
| + | * Añadir a la salida | ||
| + | |||
| + | find / -name " | ||
| + | |||
| + | * Redireccionar la entrada | ||
| + | |||
| + | sort < mis-peliculas.txt | ||
| + | |||
| + | |||
| + | Mas información: | ||
| + | * [[https:// | ||
| + | |||
| + | |||
| + | ===== Operador Substitución ===== | ||
| + | |||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | <sxh bash> | ||
| + | ANYO_ACTUAL=$(date +%Y) | ||
| + | echo $ANYO_ACTUAL | ||
| + | </ | ||
| + | |||
| + | ===== Operador matemático ===== | ||
| + | Para hacer operaciones matemáticas con bash usar '' | ||
| + | |||
| + | <sxh bash> | ||
| + | a=3 | ||
| + | b=1 | ||
| + | c=$[ $a - $b ] | ||
| + | echo $c | ||
| + | </ | ||
| + | |||
| + | Mostrará por pantalla 2 | ||
| + | |||
| + | |||
| + | También se puede usar la orden '' | ||
| + | |||
| + | <sxh bash> | ||
| + | a=3.7 | ||
| + | b=1.2 | ||
| + | c=$( echo "$a - $b" | bc -l) | ||
| + | echo $c | ||
| + | </ | ||
| + | |||
| + | Mostrará por pantalla 2.5 | ||
| + | |||
| + | |||
| + | Otro ejemplo de '' | ||
| + | |||
| + | <sxh bash> | ||
| + | echo " | ||
| + | </ | ||
| + | |||
| + | Mostrará por pantalla 20.6 | ||
| + | |||
| + | |||
| + | ===== Condicional ===== | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | |||
| + | <sxh bash> | ||
| + | if [ " | ||
| + | echo "Ha saludado con Hola" | ||
| + | else | ||
| + | echo "No ha saludado con Hola" | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | <sxh bash> | ||
| + | if [ " | ||
| + | echo "Ha saludado con Hola" | ||
| + | elif [ " | ||
| + | echo "Ha saludado con Hello" | ||
| + | else | ||
| + | echo "No ha saludado con Hola" | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | |||
| + | <sxh bash> | ||
| + | if [ " | ||
| + | echo "Ha saludado " | ||
| + | else | ||
| + | echo "No ha saludado" | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | <sxh bash> | ||
| + | if [ " | ||
| + | echo "Hola Lorenzo " | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | <sxh bash> | ||
| + | if [ " | ||
| + | echo "El año actual es menor o igual que 2020" | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | ^ Operadores para textos | ||
| + | ^ Operador en Bash ^ Significado ^ Ejemplo ^ | ||
| + | | == | = | '' | ||
| + | | != | ≠ | '' | ||
| + | |||
| + | |||
| + | ^ Operadores para números enteros | ||
| + | ^ Operador en Bash ^ Significado ^ Ejemplo ^ | ||
| + | | -eq | = (**eq**ual) | '' | ||
| + | | -ne | ≠ (**n**ot **e**qual) | ||
| + | | -gt | > (**g**reater **t**han) | ||
| + | | -ge | ≥ (**g**reater or **e**qual) | ||
| + | | -lt | < (**l**ess **t**han) | ||
| + | | -le | ≤ (**l**ess or **e**qual) | ||
| + | |||
| + | ^ Operadores lógicos | ||
| + | ^ Operador en Bash ^ Significado ^ Ejemplo ^ | ||
| + | | < | ||
| + | | < | ||
| + | |||
| + | |||
| + | |||
| + | ===== Bucles ===== | ||
| + | * [[https:// | ||
| + | <sxh bash> | ||
| + | #Muestra los números del 0 al 9 | ||
| + | for I in 0 1 2 3 4 5 6 7 8 9 | ||
| + | do | ||
| + | echo Es valor de I=$I | ||
| + | done | ||
| + | </ | ||
| + | <sxh bash> | ||
| + | #Borra todos los ficheros del directorio | ||
| + | for FICHERO in $(ls) | ||
| + | do | ||
| + | rm $FICHERO | ||
| + | done | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Ejercicios ===== | ||
| + | |||
| + | ==== Ejercicio 1 ==== | ||
| + | Haz un Script que muestre por pantalla "Hola Mundo" , para ello usa la orden " | ||
| + | |||
| + | |||
| + | |||
| + | ==== Ejercicio 2 ==== | ||
| + | Parámetros básicos: | ||
| + | |||
| + | * Crea un Script llamado " | ||
| + | * Crea un Script llamado " | ||
| + | |||
| + | ==== Ejercicio 3 ==== | ||
| + | Haz un Script llamado " | ||
| + | |||
| + | Modifica el Script para que acepte números decimales | ||
| + | |||
| + | ==== Ejercicio 4 ==== | ||
| + | Haz un Script llamado " | ||
| + | |||
| + | Modifica el Script de la siguiente forma: | ||
| + | * Si la nota del examen es un 10 que muestre por pantalla " | ||
| + | * Si alguna de las notas es menor que 0 o mayor que 10 que muestre un aviso de que esa nota no tiene un valor válido y no haga nada mas. | ||
| + | |||
| + | |||
| + | |||
| + | ==== Ejercicio 5 ==== | ||
| + | Haz un script llamado " | ||
| + | * El nombre de una partición | ||
| + | * El nombre de un sistema de archivos. Solo se permitirán los siguientes sistemas de archivos: | ||
| + | * ext4 | ||
| + | * XFS | ||
| + | * Btrfs | ||
| + | |||
| + | Y deberá hacer: | ||
| + | * Si no pasan los 2 argumentos deberá darse un error. | ||
| + | * Si el sistema de archivos es " | ||
| + | * Si el sistema de archivos es " | ||
| + | * Si están los dos argumentos se deberá crear un sistema de archivos en la partición del tipo indicado. | ||
| + | |||
| + | |||
| + | ==== Ejercicio 6 ==== | ||
| + | Haz un script llamado " | ||
| + | |||
| + | Modifica el Script para que acepte un segundo argumento que sea alguno de los siguientes valores: | ||
| + | * " | ||
| + | * " | ||
| + | * " | ||
| + | |||
| + | Con cualquier otro valor deberá mostrar un mensaje de error y no hacer nada. | ||
| + | |||
| + | |||
| + | |||
