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