viernes, 16 de septiembre de 2022

Bash Script en ejemplos

Bash es básicamente un lenguaje de programación y scripting. El cual nos permite crear sencillas rutinas como listar directorios, crear archivos y/o directorios, mostrar el calendario, fecha actual y otras cosas más complejas como crear usuarios, eliminarlos, actualiar sus passwords o incluso ejecutar tareas automáticas sin necesidad de ejecución manual.

En este post hablaremos un poco de deste lenguaje y mostraremos algunos ejemplos.

holamundo.sh

#!/bin/bash

nombre="Codemonkey Junior"
echo Hola, $nombre

El clásico programa de Hola, mundo. Como se puede obserar la extensión es .sh. Para poder ejecutarlo es preciso antes dar permisos de ejecución. Esto se puede de la siguiente manera:

$ sudo chmod +x holamundo.sh

Ejecutar:

$ ./holamundo.sh

Salida:

Hola, Codemonkey Junior

En el siguiente ejemplo veremos:

  • Definir variables de diferente tipo.
  • Usar variables del sistema.
  • Comprobar si una variable es NULL.
  • Realizar operaciones aritméticas.

variables.sh

#!/bin/bash

# Comentarios multilínea
<< 'MULTILINE-COMMENT'
FUNDAMENTOS DE PROGRAMACION EN BASH SHELL
MULTILINE-COMMENT

# Limpiamos terminal
clear
# Definimos variables tipo Caracter, Entero, Booleano y del sistema
nombre="codemonkey Junior"
entero=34
booleano=true
flotante=9.83
fecha=`date`
directorio=`pwd`

# Mostramos en pantalla el valor de las variables
echo "[Variables en Linux]"
echo "Hola, ${nombre}"
echo "Entero = ${entero}"
echo "Flotante = ${flotante}" 
 
# Comprobamos si una variable es NULL
if $booleano; then echo "Es verdadero: ${booleano}"; else echo "Es falso: ${booleano}"; fi
echo "Fecha de hoy es: ${fecha}"
echo "Estamos en el directorio: ${directorio}"
echo "El nombre del archivo es: $0"

# Realizamos algunas operaciones aritméticas
let num1=21
let num2=1
let suma=${num1}+${num2}
echo "num1=${num1}, num2=${num2}"
echo "Suma = ${suma}"

Otorgar permisos de ejecución:

$ sudo chmod +x variables.sh

Ejecutar:

$ ./variables.sh

En el siguiente ejemplo veremos como realizar operaciones aritméticas básicas: suma, resta, multiplicación, división y residuo(%).

operaciones.sh

#!/bin/bash


# Definimos las variables y su valor
let a=20
let b=5

# Operaciones aritméticas
let suma=$(expr ${a} + ${b})
let resta=$(expr ${a} - ${b})
let producto=`expr $a \* $b`
let division=$(expr ${a} / ${b})
echo "[Operaciones aritmeticas]"
echo "a = ${a}, b = ${b}"
echo "Suma = ${suma}"
echo "Resta = ${resta}"
echo "Producto = ${producto}"
echo "Division = ${division}"
let c=220
let d=200
let residuo=$(expr ${c} % ${d})
echo "c = ${c}, d = ${d}"
echo "Residuo = ${residuo}"

Otorgar permisos de ejecución:

$ sudo chmod +x operaciones.sh

Ejecutar:

$ ./operaciones.sh

En este ejemplo veremos como obtener la longitud de las variables declaradas.

longitud.sh

#!/bin/bash


nombre='ABC'
echo "Cadena = ${nombre}"
# La longitud debe ser de 3
echo La longitud de la variable es: ${#nombre} 
numero=4953
echo "Numero = ${numero}"
# La longitud debe ser de 4
echo La longitud de la variable es: ${#numero} 
booleano=true
echo "Booleano = ${booleano}"
# En este la longitud será de 4, se cuenta cada una de las letras como si fuera un string
echo La longitud de la variable es: ${#booleano} 

Otorgar permisos de ejecución:

$ sudo chmod +x longitud.sh

Ejecutar:

$ ./longitud.sh

En este ejemplo mostraremos el uso de comandos como whoami, pwd y variables del sistema.

usuario.sh

#!/bin/bash

<< 'MULTILINE-COMMENT'
FUNDAMENTOS DE PROGRAMACION EN BASH SHELL
MULTILINE-COMMENT

clear

# Algunos comandos y variables de Linux
quien=`whoami`
donde=`pwd`
mishell=$SHELL
echo "Quien soy?:  ${quien}"
echo "Donde estoy?: ${donde}"
echo "El home es: ${HOME}"
echo "El usuario es: ${USER}"
echo "El shell esta en: ${mishell}"

Otorgar permisos de ejecución:

$ sudo chmod +x usuario.sh

Ejecutar:

$ ./usuario.sh

En próximos post veremos más ejemplos.

Enlaces:

https://www.reiser.cl/bash-manejo-de-cadenas-de-texto/ https://linuxhint.com/variables_bash/ https://linuxize.com/post/bash-comments/ https://www.cyberciti.biz/faq/bash-shell-find-out-if-a-variable-has-null-value-or-not/ https://linuxhint.com/use-boolean-value-in-bash/ https://ryanstutorials.net/bash-scripting-tutorial/bash-arithmetic.php