Scripts en Bash

PODCAST-6 Scripts en Linux.wav

¿Qué es un script?

Un script en bash es un archivo de texto plano que contiene una secuencia de comandos escritos en el lenguaje de programación Bash.

Los scripts en bash se utilizan comúnmente para automatizar tareas repetitivas, realizar operaciones de administración del sistema, manipular archivos y directorios, entre otras funciones…

Los archivos de script en bash tienen la extensión ".sh" y pueden ser ejecutados directamente desde la línea de comandos o desde otros scripts

Bash es el intérprete de comandos predeterminado en la mayoría de los sistemas operativos basados en Unix y Linux.

*si queires sabers las shells que tienes ejecutar cat /etc/shells y para saber la que usa el usuario which bash

Partes de un script

Se tiene que llamar con la extensión .sh por ejemplo holamundo.sh

La primera línea tiene que ser #!/bin/bash

Las líneas que empiecen por # serán consideradas comentarios (no se ejecutan)

¿Cómo se ejecuta un script?

Para ejecutar un script en bash, primero necesitas asegurarte de que el archivo tenga permisos de ejecución. Puedes hacerlo con el comando chmod seguido del permiso de ejecución y el nombre del archivo. chmod +x mi_script.sh

Una vez que el archivo tiene permisos de ejecución, puedes ejecutarlo desde la línea de comandos escribiendo su ruta absoluta o relativa poniendo delante un ./ y el nombre del script. ./mi_script.sh

Untitled

Variables en Linux

Se llaman por $NOMBRE.

Variables de entorno:

Una variable del entorno es un valor dinámico cargado en la memoria, que puede ser utilizado por varios procesos que funcionan simultáneamente.

$ARCH Contiene la descripción de la arquitectura del equipo.

$DISPLAY Contiene la identificación de la terminal de visualización que se utilizará en el administrador de ventanas (x11).

$HOME Muestra la ruta de acceso al directorio actual del usuario.

$HOST Muestra el nombre del equipo.

$LANG Muestra el código del idioma predeterminado.

$PATH Muestra una lista de rutas de acceso a los directorios que contienen archivos ejecutables, separadas por punto y coma.

$PRINTER Contiene el nombre de la impresora predeterminada.

$SHELL Indica la ruta del intérprete de comandos utilizado.

$USER Muestra la identificación del usuario actual.

Variables fijas:

#!/bin/bash
# Muestra el valor de la variable
variable1="Esto en una variable"
echo $variable1

Variables introducidas por usuario:

Si queremos que el ordenador pregunte y establezca la respuesta como variable.

#!/bin/bash
# Pregunta como te llamas y lo que escribas lo muestra.
read -p "¿Cómo te llamas?: nombre
echo "Hola $nombre"

read -p (mostrar un mensaje personalizado antes ingresar el valor)

read -s (hacer que la entrada del usuario sea silenciosa o invisible)

read -r (interprete la entrada de manera literal, evitando comandos especiales)

read -n 2 (lee solo el caracter en la posicion n indicada)

#!/bin/bash

# Solicitar al usuario que ingrese una respuesta de S o N
echo "¿Estás de acuerdo? (s/n)"
read -n 1 -r respuesta

# Verificar la respuesta del usuario
if [ "$respuesta" == "s" ]; then
    echo "El usuario está de acuerdo."
elif [ "$respuesta" == "n" ]; then
    echo "El usuario no está de acuerdo."
else
    echo "Respuesta inválida."
fi

#!/bin/bash

#pedir por pantalla el numero a comprobar
read -p "Introduce el numero a comprobar:" numero
#buscamos el numero en un documento que tenemos con los resultados llamado numeros-ganadores.txt
if grep -q $numero numeros-ganadores.txt: then
echo "El $numero esta en la lista de ganadores"
else
echo "Ohhhh no ha tocado"
fi

Variables calculadas:

Usas comandos del sistema y su valor lo usas en tu script

#!/bin/bash
# establece una variable a partir de comandos
fecha_actual=$(date +"%Y-%m-%d")
echo "La fecha actual es: $fecha_actual"

Variables por valores (array):

#!/bin/bash
# de una serie de opciones (lista separada por espacios), obtienes los valores que quieras
colores=("rojo" "verde" "azul")
echo "El primer color es: ${colores[0]}"
echo "El segundo color es: ${colores[1]}"
echo "El tercer color es: ${colores[2]}"
echo "Todos los colores son: ${colores[@]}"

Funciones

En Bash existen estas construcciones para controlar el flujo de ejecución de un script:

PRACTICA TUS AVANCES: SCRIPTS

<aside> 💡 EJERCICIOS SCRIPTS. Crea un Script que haga…

if/else

Puedes anidar (meter uno dentro de otro). SI … ENTONCES…. SINO….. | (if … then… else… fi)

if "condicion" then
  "comandos"
    [elif "condicion"
    then
    "comandos"]
  [else
  "comandos"]
fi

Algunos ejemplos de if

for

while

until

case

select

Optimizar Linux Mint