Herramientas de usuario

Herramientas del sitio


clase:daw:si:2eval:tema12

¡Esta es una revisión vieja del documento!


12. Scripts básicos en Linux

VI

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 ".sh"
vi miscript.sh
  • Añadir en la primera línea del fichero lo siguiente 1):
#!/usr/bin/env bash

o

#!/bin/bash
  • Darle permisos de ejecución:
  chmod u+x miscript.sh
  • Ejecutar el Script con la ruta del directorio actual:
  ./miscript.sh

Parámetros y Variables

Redirecciones

ls *.sh > misScripts.txt
  • Redireccionar la entrada
sort < misScripts.txt
  • Añadir a la salida
ls *.sh >> misScripts.txt

Operador Substitución

Operador matemático

Para hacer operaciones matemáticas con bash usar "$[ ]"

  a=3
  b=1
  c=$[ $a - $b ]
  echo $c
 

Mostrará por pantalla 2

También se puede usar la orden bc que permite decimales.

  a=3.7
  b=1.2
  c=$( echo "$a - $b" | bc -l)
  echo $c
 

Mostrará por pantalla 2.5

Otro ejemplo de bc

  echo "1.3+2.6+7.8+8.9" | bc -l
 

Mostrará por pantalla 20.6

Condicional

if [ "$SALUDO" == "HOLA" ]; then
    echo "Ha saludado con Hola"
else
   echo "No ha saludado con Hola"
fi

if [ "$SALUDO" == "HOLA" ]; then
    echo "Ha saludado con Hola"
elif [ "$SALUDO" == "Hello" ]; then
    echo "Ha saludado con Hello"
else
   echo "No ha saludado con Hola"
fi

Bucles

#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
#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 "echo".

Ejercicio 2

Parámetros básicos:

  • Crea un Script llamado "ejer1.sh" y haz que se le pase un parámetro y que lo muestre por pantalla.
  • Crea un Script llamado "ejer2.sh" y haz que se le pasen 2 parámetros y que se muestren por pantalla.

Ejercicio 3

Haz un Script llamado "sumar.sh" que sume dos números enteros que se pasan como argumentos.

Modifica el Script para que acepte números decimales

Ejercicio 4

Haz un Script llamado "nota_media_sistemas.sh" que datos 3 notas enteras (Examen, Prácticas y Actitud) , obtenga la nota media del módulo de "Sistemas Informáticos". Sabiendo que el peso de cada nota es del 60%, 30% y 10% respectivamente

Modifica el Script de la siguiente forma:

  • Si la nota del examen es un 10 que muestre por pantalla "Felicidades!!"
  • 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.

Ejercicio 5

  • Crea un Script llamado "backup.sh" que copie el contenido de la carpeta actual a "/backup". Debrás crear la carpeta "/backup" en el propio script.

Modifica el anterior Script para que:

  • El directorio destino se pase como primer argumento
  • Que el directorio origen se pase como segundo argumento.

Modifica el anterior Script para que:

  • Antes de hacer la copia tengas 2 variable llamadas "DIR_ORIGEN" y "DIR_DESTINO" con la carpeta origen y destino

Ejercicio 6

Haz un Script llamado "netbeansproject.sh" que se le pase como único argumento el nombre de "un proyecto netbeans".

El Script deberá crear una carpeta con ese nombre y luego crear la misma estructura de carpetas que tiene un proyecto de NetBeans vacio.

Ejercicio 7

Haz un script llamado "format.sh" que le pasemos como argumentos:

  • 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 "ext3" deberá indicarse que "El sistema de archivos es demasiado viejo" y no hacer nada mas
  • Si el sistema de archivos es "ext2" deberá indicarse que "El sistema de archivos no soporta Journaling" y no hacer nada mas
  • Si están los dos argumentos se deberá crear un sistema de archivos en la partición del tipo indicado.

Ejercicio 9

Haz un script llamado "permitir_ejecucion.sh" que acepte como argumento el nombre de un fichero. La orden añadirá el permiso de ejecución al propietario de ese fichero

Modifica el Script para que acepte un segundo argumento que sea alguno de los siguientes valores:

  • "PROPIETARIO": Añadirá el permiso solo al propietario
  • "GRUPO": Añadirá el permiso solo al grupo
  • "TODOS": Añadirá el permiso al propietario , al grupo y a otros.

Con cualquier otro valor deberá mostrar un mensaje de error y no hacer nada.

clase/daw/si/2eval/tema12.1609695852.txt.gz · Última modificación: 2021/01/03 18:44 por admin