10 consejos útiles para escribir scripts Bash efectivos en Linux


administración del sistema para automatizar tareas, desarrollar nuevas utilidades/herramientas simples, solo por mencionar algunas.

En este artículo, compartiremos 10 consejos útiles y prácticos para escribir scripts bash efectivos y confiables, que incluyen:

1. Utilice siempre comentarios en los scripts

Esta es una práctica recomendada que no solo se aplica a los scripts de shell sino a todos los demás tipos de programación. Escribir comentarios en un guión le ayuda a usted oa otra persona que lo lea a comprender lo que hacen las diferentes partes del guión.

Para empezar, los comentarios se definen mediante el signo # .

#TecMint is the best site for all kind of Linux articles

2.Haga una salida de script cuando falle

A veces, bash puede continuar ejecutando un script incluso cuando un comando determinado falla, lo que afecta al resto del script (eventualmente puede resultar en errores lógicos). Utilice la línea siguiente para salir de un script cuando falla un comando:

#let script exit if a command fails
set -o errexit 
OR
set -e

3.Haga una salida de script cuando Bash use una variable no declarada

Bash también puede intentar usar un script no declarado que podría causar un error lógico. Por lo tanto, use la siguiente línea para indicar a bash que salga de un script cuando intente usar una variable no declarada:

#let script exit if an unsed variable is used
set -o nounset
OR
set -u

4. Utilice comillas dobles para hacer referencia a variables

El uso de comillas dobles al hacer referencia (usando un valor de una variable) ayuda a evitar la división de palabras (con respecto a los espacios en blanco) y el engrosamiento innecesario (reconocer y expandir comodines).

Mira el ejemplo a continuación:

#!/bin/bash
#let script exit if a command fails
set -o errexit 

#let script exit if an unsed variable is used
set -o nounset

echo "Names without double quotes" 
echo
names="Tecmint FOSSMint Linusay"
for name in $names; do
        echo "$name"
done
echo

echo "Names with double quotes" 
echo
for name in "$names"; do
        echo "$name"
done

exit 0

Guarde el archivo y salga, luego ejecútelo de la siguiente manera:

$ ./names.sh

5. Usar funciones en Scripts

A excepción de los scripts muy pequeños (con unas pocas líneas de código), recuerde siempre utilizar funciones para modularizar su código y hacer que los scripts sean más legibles y reutilizables.

La sintaxis para escribir funciones es la siguiente:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

Para el código de una sola línea, use caracteres de terminación después de cada comando como este:

check_root(){ command1; command2; }

6. Utilice u003d en lugar de u003du003d para las comparaciones de cadenas

Tenga en cuenta que u003du003d es un sinónimo de u003d , por lo tanto, solo use un único u003d para las comparaciones de cadenas, por ejemplo:

value1=”tecmint.com”
value2=”fossmint.com”
if [ "$value1" = "$value2" ]

7. Utilice $(comando) en lugar del "comando" heredado para la sustitución

La sustitución de comandos reemplaza un comando con su salida. Utilice & # 36 (comando) en lugar de las comillas inversas \"command \" para la sustitución de comandos.

Esto es recomendado incluso por la herramienta shellcheck (muestra advertencias y sugerencias para scripts de shell). Por ejemplo:

user=`echo “$UID”`
user=$(echo “$UID”)

8. Utilice solo lectura para declarar variables estáticas

Una variable estática no cambia; su valor no se puede modificar una vez que se define en un script:

readonly passwd_file=”/etc/passwd”
readonly group_file=”/etc/group”

9. Utilice nombres en mayúsculas para las variables de ENTORNO y minúsculas para las variables personalizadas

Todas las variables de entorno de bash se nombran con letras mayúsculas, por lo tanto, use letras minúsculas para nombrar sus variables personalizadas para evitar conflictos de nombres de variables:

#define custom variables using lowercase and use uppercase for env variables
nikto_file=”$HOME/Downloads/nikto-master/program/nikto.pl”
perl “$nikto_file” -h  “$1”

10. Realice siempre la depuración para scripts largos

Si está escribiendo scripts bash con miles de líneas de código, encontrar errores puede convertirse en una pesadilla. Para solucionar fácilmente las cosas antes de ejecutar un script, realice algunas depuraciones. Domine este consejo leyendo las guías que se proporcionan a continuación:

  1. Cómo habilitar el modo de depuración de secuencias de comandos de Shell en Linux
  2. Cómo realizar la verificación de sintaxis en el modo de depuración en scripts de Shell
  3. Cómo rastrear la ejecución de comandos en el script de Shell con rastreo de Shell

¡Eso es todo! ¿Tiene otras mejores prácticas de scripting de bash para compartir? En caso afirmativo, utilice el formulario de comentarios a continuación para hacerlo.