Herramientas de usuario

Herramientas del sitio


informatica:sistemas_operativos:cursos:linux_para_devops_y_sysadmin:scripting

¡Esta es una revisión vieja del documento!


Scripting

Sección perteneciente al curso Linux para DevOps y Sysadmin.

Mi primer script

#!/bin/bash
 
# Esto es un comentario
 
echo "Mi directorio actual es:"
 
pwd
 
echo "El usuario que está conectado en esta terminal es: "
 
whoami

Hay que darle permisos de ejecución:

chmod +x miscript.sh

Luego podemos ejecutarlo:

./miscript.sh

Alternativa:

sh miscript.sh

Variables en scripts

Ejemplo usando variables de usuario:

#!/bin/bash
 
# Este es el script de clase
 
alumno=Pepito
 
nota=9
 
# Mostramos la información por pantalla
echo "El alumno $alumno ha sacado un $nota"
 
nota=10
 
echo "El alumno $alumno ha sacado un $nota en el segundo intento"

Variables de entorno en scripts

Si queremos ver las variables de entorno creadas:

printenv

También se puede usar el comando env

Para ver las variables que han sido exportadas:

export

Crearemos un script donde crearemos una variable de entorno y la usaremos:

#!/bin/bash
 
# Si algún comando falla, no continuará el script:
set -e
 
DOCKER_USER=pepito
 
export DOCKER_USER
 
# Login en Docker con nuestra cuenta
docker login --username $DOCKER_USER 

Condicional if

Veremos el uso del condicional escribiendo un script que compruebe si existe un directorio:

#!/bin/bash
 
set -e
 
directorio="/home/pepito"
 
if [ -d $directorio ]; then
  echo "Este directorio existe"
else
  echo "Este directorio no existe"
fi  

Bucle for

Mostraremos los números del 1 al 10 cada segundo:

#!/bin/bash
 
for ((c=1; c<=10; c++))
do
  echo "Contador $c"
  sleep 1
done

Crear diez ficheros vacíos:

#!/bin/bash
 
for ((c=1; c<=10; c++))
do
  echo "touch-$c"
done

Bucle while

#!/bin/bash
 
numero=1
 
# Mientras el valor de número sea menor o igual que 5
while [ $numero -le 5 ]
do
  echo "Ejecutándose $número de veces"
  (( numero++ ))
done

Algunos operadores que podemos usar en la condición:

  • -gt: mayor
  • -lt: menor
  • -ge: mayor o igual
  • -le: menor o igual
  • -eq: igual
  • -ne: distinto

Case condition - Control de flujo

#!/bin/bash
 
# Control de flujo
 
echo "Adivina mi edad"
 
read edad
 
case $edad in
  28)
    echo "Correcto. Has adivinado"
  ;;
  *)
    echo "Lo siento. No has adivinado."
  ;;
esac

Script que cree un usuario con su ssh key

Script que instale el paquete que le digas

informatica/sistemas_operativos/cursos/linux_para_devops_y_sysadmin/scripting.1694796708.txt.gz · Última modificación: por tempwin