0% encontró este documento útil (0 votos)
24 vistas9 páginas

Scripts de Shell para Linux en DAW

El documento presenta una serie de ejercicios prácticos en Bash para el módulo de Sistemas Informáticos del Ciclo Formativo de Grado Superior de Desarrollo de Aplicaciones Web. Cada ejercicio incluye la creación de scripts que utilizan estructuras de control como 'if' y 'case' para realizar diversas tareas, como comparar números, verificar archivos, mostrar menús y realizar cálculos. Los scripts están acompañados de instrucciones y comentarios para facilitar su comprensión y ejecución.

Cargado por

jfertos21
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como ODT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
24 vistas9 páginas

Scripts de Shell para Linux en DAW

El documento presenta una serie de ejercicios prácticos en Bash para el módulo de Sistemas Informáticos del Ciclo Formativo de Grado Superior de Desarrollo de Aplicaciones Web. Cada ejercicio incluye la creación de scripts que utilizan estructuras de control como 'if' y 'case' para realizar diversas tareas, como comparar números, verificar archivos, mostrar menús y realizar cálculos. Los scripts están acompañados de instrucciones y comentarios para facilitar su comprensión y ejecución.

Cargado por

jfertos21
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como ODT, PDF, TXT o lee en línea desde Scribd

Av de la Arboleda, s/n, Av.

Arboleda, 21440 Lepe, Huelva


Ciclo Formativo de Grado Superior de Desarrollo de Aplicaciones Web (DAW)
Módulo Profesional de SISTEMAS INFORMÁTICOS

Unidad Didáctica 8 – Shell Script - Linux

Realiza los siguientes scripts:

Instrucciones generales:
- Deberán funcionar correctamente conforme a lo que pide cada enunciado.
- Incluye mensajes adecuados, bien estructurados, con amplitud de líneas en blanco para una mejor
visualización. Incluye también nombres de ficheros, directorios, etc., dentro de los mensajes para
que queden mejor visualmente.
- Comenta el código para que se pueda seguir claramente.

Resolver con la estructura de control “if”:


1. Escribe un script que solicite al usuario dos números y los compare. Si son iguales, que
muestre "Los números son iguales". Si el primero es mayor, que indique "El primer número
es mayor". Si el segundo es mayor, que indique "El segundo número es mayor".

#!/bin/bash
# Solicitar dos números
read -p "Introduce el primer número: " num1
read -p "Introduce el segundo número: " num2

# Comparar los números


if [ $num1 -eq $num2 ]; then
echo "Los números son iguales"
elif [ $num1 -gt $num2 ]; then
echo "El primer número es mayor"
else
echo "El segundo número es mayor"
fi

2. Diseña un script que pida al usuario que introduzca el nombre de un archivo y luego
verifique si el archivo existe. Si existe, que indique si el usuario tiene permisos de lectura,
escritura y ejecución sobre él.
Av de la Arboleda, s/n, Av. Arboleda, 21440 Lepe, Huelva
#!/bin/bash
# Solicitar el nombre del archivo
read -p "Introduce el nombre del archivo: " archivo

# Verificar si el archivo existe


if [ -e "$archivo" ]; then
echo "El archivo existe."

# Comprobar permisos
[ -r "$archivo" ] && echo "Tienes permisos de lectura."
[ -w "$archivo" ] && echo "Tienes permisos de escritura."
[ -x "$archivo" ] && echo "Tienes permisos de ejecución."
else
echo "El archivo no existe."
fi
Resolver con la estructura de control “case” (y utilizando “if” también en la que sea
necesario):
3. Crea un script que muestre un menú con las siguientes opciones y muestre un mensaje de
saludo según la que se seleccione:
1. Mañana
2. Tarde
3. Noche
#!/bin/bash
echo "Selecciona una opción:"
echo "1. Mañana"
echo "2. Tarde"
echo "3. Noche"
read -p "Opción: " opcion

case $opcion in
1) echo "¡Buenos días!";;
2) echo "¡Buenas tardes!";;
Av de la Arboleda, s/n, Av. Arboleda, 21440 Lepe, Huelva
3) echo "¡Buenas noches!";;
*) echo "Opción no válida";;
esac

4. Crea un script que muestre un menú con las siguientes opciones y muestre un mensaje
alusivo al color seleccionado:
1. Rojo
2. Azul
3. Verde

#!/bin/bash
echo "Selecciona un color:"
echo "1. Rojo"
echo "2. Azul"
echo "3. Verde"
read -p "Opción: " opcion

case $opcion in
1) echo "Has seleccionado el color Rojo";;
2) echo "Has seleccionado el color Azul";;
3) echo "Has seleccionado el color Verde";;
*) echo "Opción no válida";;
esac

5. Crea un script que muestre un menú con las siguientes opciones y muestre un mensaje
alusivo a la comida seleccionada:
1. Pizza
2. Hamburguesa
3. Ensalada
#!/bin/bash
echo "Selecciona una comida:"
Av de la Arboleda, s/n, Av. Arboleda, 21440 Lepe, Huelva
echo "1. Pizza"
echo "2. Hamburguesa"
echo "3. Ensalada"
read -p "Opción: " opcion

case $opcion in
1) echo "Has seleccionado Pizza";;
2) echo "Has seleccionado Hamburguesa";;
3) echo "Has seleccionado Ensalada";;
*) echo "Opción no válida";;
esac

6. Diseña un script que pida al usuario el nombre de un animal entre perro, gato y pájaro y, en
función del que se indique, muestre un mensaje con alguna característica básica del animal.
#!/bin/bash
read -p "Introduce un animal (perro, gato, pájaro): " animal

case $animal in
perro) echo "El perro es un excelente animal de compañía.";;
gato) echo "El gato es un animal independiente y ágil.";;
pájaro) echo "El pájaro es conocido por su capacidad de volar.";;
*) echo "Animal no reconocido";;
esac
7. Escribe un script que pida al usuario un número del 1 al 7 y devuelva el nombre del día de la
semana correspondiente (1 = Lunes, 2 = Martes, etc.).
Si el número no está entre 1 y 7, que muestre un mensaje de error.
#!/bin/bash
read -p "Introduce un número del 1 al 7: " num

case $num in
1) echo "Lunes";;
2) echo "Martes";;
Av de la Arboleda, s/n, Av. Arboleda, 21440 Lepe, Huelva
3) echo "Miércoles";;
4) echo "Jueves";;
5) echo "Viernes";;
6) echo "Sábado";;
7) echo "Domingo";;
*) echo "Número no válido";;
esac
8. Crea un script que muestre un menú con las siguientes opciones y las realice según la
selección:
1. Mostrar la fecha actual
2. Mostrar el nombre del usuario
3. Mostrar el directorio actual
4. Salir
#!/bin/bash
echo "Selecciona una opción:"
echo "1. Mostrar la fecha actual"
echo "2. Mostrar el nombre del usuario"
echo "3. Mostrar el directorio actual"
echo "4. Salir"
read -p "Opción: " opcion

case $opcion in
1) date;;
2) whoami;;
3) pwd;;
4) echo "Saliendo..."; exit;;
*) echo "Opción no válida";;
esac
9. Crea un script que solicite un solo carácter al usuario y, si es una vocal, mostrar "Has
introducido una vocal". Si es un número, mostrar "Has introducido un número". En
cualquier otro caso, mostrar "Has introducido otro tipo de carácter".
Av de la Arboleda, s/n, Av. Arboleda, 21440 Lepe, Huelva
#!/bin/bash
read -p "Introduce un carácter: " caracter

if [[ "$caracter" =~ [aeiouAEIOU] ]]; then


echo "Has introducido una vocal."
elif [[ "$caracter" =~ [0-9] ]]; then
echo "Has introducido un número."
else
echo "Has introducido otro tipo de carácter."
fi

10. Diseña un script que solicite dos números y realice la suma de ambos.
#!/bin/bash
read -p "Introduce el primer número: " num1
read -p "Introduce el segundo número: " num2
suma=$((num1 + num2))
echo "La suma de los números es: $suma"
11. Crea un script que pida dos números y una operación (+, -, *, /). Luego,
dependiendo de la operación indicada, deberá realizar la operación correspondiente y
mostrar el resultado.
Si el usuario introduce una operación inválida, debe mostrar un mensaje de error.
#!/bin/bash
read -p "Introduce el primer número: " num1
read -p "Introduce el segundo número: " num2
read -p "Introduce la operación (+, -, *, /): " operacion

case $operacion in
+) resultado=$((num1 + num2));;
-) resultado=$((num1 - num2));;
\*) resultado=$((num1 * num2));;
/) if [ $num2 -ne 0 ]; then
resultado=$((num1 / num2))
Av de la Arboleda, s/n, Av. Arboleda, 21440 Lepe, Huelva
else
echo "No se puede dividir por cero."
exit
fi
;;
*) echo "Operación no válida"; exit;;
esac
echo "El resultado es: $resultado"
12. Escribe un script que pida un número e indique si es par o impar.
#!/bin/bash
read -p "Introduce un número: " num
if [ $((num % 2)) -eq 0 ]; then
echo "El número es par"
else
echo "El número es impar"
fi
13. Diseña un script que pida un número y nos pregunte si queremos ver el doble o el
triple de dicho número y que realice las operaciones indicadas.
#!/bin/bash
read -p "Introduce un número: " num
read -p "¿Quieres ver el doble o el triple? (doble/triple): " eleccion

if [ "$eleccion" == "doble" ]; then


echo "El doble del número es: $((num * 2))"
elif [ "$eleccion" == "triple" ]; then
echo "El triple del número es: $((num * 3))"
else
echo "Opción no válida"
fi
14. Diseña un script que pida un número y nos pregunte si queremos calcular su
cuadrado o su cubo y que realice las operaciones indicadas.
#!/bin/bash
Av de la Arboleda, s/n, Av. Arboleda, 21440 Lepe, Huelva
read -p "Introduce un número: " num
read -p "¿Quieres calcular el cuadrado o el cubo? (cuadrado/cubo): " eleccion

if [ "$eleccion" == "cuadrado" ]; then


echo "El cuadrado del número es: $((num * num))"
elif [ "$eleccion" == "cubo" ]; then
echo "El cubo del número es: $((num * num * num))"
else
echo "Opción no válida"
fi
15. Crea un script que pida un número y determine si es positivo, negativo o cero.
#!/bin/bash
read -p "Introduce un número: " num

if [ $num -gt 0 ]; then


echo "El número es positivo"
elif [ $num -lt 0 ]; then
echo "El número es negativo"
else
echo "El número es cero"
fi
16. Escribe un script que pida al usuario que introduzca un nombre se determine si es un
archivo, un directorio o si no existe.
#!/bin/bash
read -p "Introduce un nombre de archivo o directorio: " nombre

if [ -f "$nombre" ]; then
echo "Es un archivo regular"
elif [ -d "$nombre" ]; then
echo "Es un directorio"
else
echo "No existe o no es un archivo ni directorio"
Av de la Arboleda, s/n, Av. Arboleda, 21440 Lepe, Huelva
fi
17. Crea un script que calcule el área de algunas figuras geométricas. Deberá mostrar un
menú con las siguientes opciones y pedir, según la que se seleccione, los datos que sean
necesarios para los cálculos y realizarlos. Para trabajar con decimales, investiga sobre el
comando “bc” y el parámetro “scale”:
1. Círculo
2. Cuadrado
3. Triángulo
#!/bin/bash
echo "Selecciona una figura:"
echo "1. Círculo"
echo "2. Cuadrado"
echo "3. Triángulo"
read -p "Opción: " opcion

case $opcion in
1)
read -p "Introduce el radio del círculo: " radio
area=$(echo "scale=2; 3.1416 * $radio * $radio" | bc)
echo "El área del círculo es: $area"
;;
2)
read -p "Introduce el lado del cuadrado: " lado
area=$(echo "$lado * $lado" | bc)
echo "El área del cuadrado es: $area"
;;
3)
read -p "Introduce la base del triángulo: " base
read -p "Introduce

También podría gustarte