Actualizado el domingo, 19 enero, 2020
Cómo escribir scripts bash correctamente.
Los scripts bash son la forma más sencilla de ejecutar y automatizar tareas en nuestro linux. Son rápidos, seguros y muy fiables.
En este articulo vemos las leyes de buenas practicas a la hora de crear un script, o mejor dicho… Como escribir scripts bash correctamente para que sea compresible, y lo más importante, reutilizable.
Cómo escribir scripts bash correctamente
Aportamos los diez consejos que cualquier desarrollador bash debería seguir.
Siempre agregar comentarios
Los comentarios ayudan a comprender el desarrollo del script, y facilitan la tarea de otro desarrollador que quiera continuar o mejorar tu script. Recuerda que son a modo indicativo, para que no se intenten ejecutar deben estar comentados (carácter #).
# El script de sololinux.es, .....
Salir del script al encontrar un error
Bash es muy potente, tanto, que a veces al producirse un error es capaz de seguir ejecutándose. No debes permitirlo, para subsanar este problema usamos la opción abreviada de «errexit».
# El script de sololinux.es set -e
Salir del script cuando bash use una variable no declarada
Algunas veces bash puede intentar ejecutar variables no declaradas, esto podría causar un desarrollo anormal del resultado final del script. Para salir del script utilizamos la opción abreviada de «nounset».
# El script de sololinux.es set -u
Las referencias a variables deben llevar comillas dobles
Cuando usamos las comillas dobles en las referencias a variables, nos evitamos la división de palabras y el tener que utilizar más espacios de los debidos.
#!/bin/bash # El script de sololinux.es set -e set -u echo "Salida sin comillas dobles" echo names="YO USO LINUX" for name in $names; do echo "$name" done echo echo "Salida con comillas dobles" echo for name in "$names"; do echo "$name" done exit 0
imagen de ejemplo…
Ejemplo de comillas dobles
Utiliza las funciones
Este es un gran defecto de los programadores noveles. Acostúmbrate a usar las funciones, se modulariza el código y es más legible.
function check_root(){ comando-1; comando-2; } OR check_root(){ comando-1; comando-2; }
Si generas el código en una linea, no te olvides de terminar.
check_root(){ comando-1; comando-2; }
No compares cadenas con ==
No es necesario introducir los dos caracteres de igual, con uno es suficiente. Ahorraras espacio y trabajo.
value1=”megustalinux” value2=”megustasololinux” if [ "$value1" = "$value2" ]
Usa $ en vez de las comillas inversas
Para sustituir comandos usa el símbolo del dolar en vez de las comillas inversas.
user=`echo “$UID”` user=$(echo “$UID”)
Utiliza mayúsculas para las variables de entorno
Para las variables de entorno debes usar letras mayúsculas, en cambio si son variables personalizadas deberías utilizar letras minúsculas. Con esta practica evitaras muchos conflictos entre variables.
solo_linux=”$HOME/Trabajos/scripts/demo.sh” perl “$solo_linux” -h “$1”
Usa readonly en las variables estáticas
Una vez definidas en un script las variables estáticas no se deben modificar, así que las ponemos en modo solo-lectura.
readonly hostname_file=”/etc/hostname” readonly localtime_file=”/etc/localtime” readonly network_file=”/etc/network”
Depurar el código
Si son scripts con pocas lineas no es necesario, pero si escribes scripts bash con cientos de lineas debes depurarlo antes de ponerlo en producción. En un próximo articulo veremos como depurar el código de bash.
Canales de Telegram: Canal SoloLinux – Canal SoloWordpress
Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.
Me queda mucho por aprender pero poco a poco me voy desburrando. Gracias de nuevo. Esto me retrotrae (y me gusta) a mis inicios en MSDOS cuando no existía todavía windows.
No sabes lo que me alegro Carlos, un detalle… si manejabas MS-DOS o anterior, la comprensión de linux te resultara bastante sencilla.
Sergio… como me dijiste hace años, los que nos abandonaron volverán. 🙂
Hablando de volver, a ver cuando vuelves tu 🙁
pronto Marín, pronto….
Me recuerda bastante al MS- Basic que se usaba en la época.
Exacto…. cuando cualquier ejecución se tenia que escribir a mano el comando.
Je, je
¡Gracias Sergio!
Las cosas básicas a veces, se olvidan. Conviene recordarlas.
Y, como dice Carlos O, recuerda un poco a los .bat de (MS)Dos, aunque mucho más potente.
Esperando el próximo. 😛
Gracias a ti Henry.
Muy bueno para mi que empiezo hoy en este mundo espero aprender mucho en el menor tiempo posible ustedes seran mi escuela
Intentaremos ayudarte Ruslan, gracias por tu visita.