Las mejores prácticas y consejos para escribir scripts de shell como pro

Las mejores prácticas y consejos para escribir scripts de shell como pro

Shell Scripting es una herramienta poderosa para la automatización de DevOps. Le permite automatizar tareas repetitivas, administrar y configurar su infraestructura y agilizar sus procesos de implementación. Sin embargo, escribir scripts de shell efectivos requiere seguir las mejores prácticas y usar ciertas técnicas para que su código sea eficiente, modular y mantenible.

En este artículo, discutiremos algunas de las mejores prácticas y consejos para los scripts de shell que pueden ayudarlo con su automatización DevOps.

1. Utilice nombres de variables significativos

El uso de nombres de variables significativos puede ayudar a que su código sea más legible y comprensible. También facilita a los demás mantener su código si necesitan modificarlo en el futuro.

Aquí hay un ejemplo de usar nombres de variables significativos en un script de shell:

#!/bin/bash # Establecer la fecha actual actual_date = $ (fecha +%y-%m-%d) # imprime el eco de la fecha actual "La fecha actual es: $ current_date"
1234567#!/bin/bash # Establezca el datecurrent_date actual = $ (fecha +%y-%m-%d) # imprima la fecha actual "La fecha actual es: $ current_date"

En este ejemplo, usamos la variable "fecha actual" Para almacenar la fecha actual y luego imprimirla con Echo. Esto deja en claro qué está almacenando la variable y cómo se está utilizando en el script.

2. Usar comprobación de errores

La comprobación de errores es una parte importante de los scripts de shell, especialmente para la automatización de DevOps. Le ayuda a captar errores desde el principio y evitar que causen problemas en el futuro.

Aquí hay un ejemplo de uso de errores en un script de shell:

#!/bin/bash # verifique si existe un archivo si [ ! -f/Path/To/File]; Entonces Echo "Error: el archivo no existe."Salir 1 Fi # Continuar con el resto del script
123456789#!/bin/bash # verifique si existe un archivo [ ! -f/Path/To/File]; Entonces Echo "Error: el archivo no existe."Salir 1fi # Continuar con el resto del script

En este ejemplo, usamos la instrucción if para verificar si existe un archivo. Si el archivo no existe, imprimimos un mensaje de error y salimos del script con un código de estado distinto de cero. Esto nos permite captar el error desde el principio y evitar que el guión continúe y potencialmente cause más problemas.

3. Usar sangría

La sangría es una parte importante de hacer que su código sea más legible y comprensible. Puede ayudarlo a ver la estructura de su código de un vistazo y facilitar.

Aquí hay un ejemplo de uso de sangría en un script de shell:

#!/bin/bash # bucle a través de una lista de archivos para archivos en/path/a/files/*; # Verifique si el archivo es un directorio si [-d "$ archivo"]; luego # imprima el nombre del directorio echo "directorio: $ archivo" else # imprime el nombre del nombre del archivo "archivo": $ archivo "FI hecho
12345678910111213#!/bin/bash # bucle a través de una lista de archivos para el archivo en/path/a/files/*; # Verifique si el archivo es un directorio si [-d "$ archivo"]; luego # imprima el nombre del directorio echo "directorio: $ archivo" else # imprima el nombre del nombre del archivo "archivo": $ archivo "fidone

En este ejemplo, usamos sangría para mostrar la estructura del guión. El bucle for se sangraba un nivel, y las declaraciones IF están sangradas de otro nivel. Esto hace que sea fácil ver qué bloques de código están anidados dentro de qué otros bloques.

4. Usar opciones de línea de comandos

Las opciones de línea de comandos son una herramienta poderosa para schippting. Le permiten transmitir argumentos a su guión y personalizar su comportamiento en función de esos argumentos.

Aquí hay un ejemplo de usar opciones de línea de comandos en un script de shell:

#!/bin/bash # opciones de línea de comandos de parse mientras getopts ": f: d:" opt; hacer caso $ opt en f) # Establezca el archivo de entrada input_file = $ optarg ;; d) # Establezca el directorio de salida out_dir = $ optarg ;; \?) echo "Opción inválida: -$ Optarg"> & 2 Salida 1 ;; :) Opción echo " -$ Optarg requiere un argumento."> & 2 Salida 1 ;; ESAC realizado # Haga algo con el archivo de entrada y el directorio de salida
1234567891011121314151617181920212232425#!/bin/bash # opción de línea de comandos de parse shile getopts ": f: d:" opt; hacer caso $ opt en f) # Establezca el archivo de entrada input_file = $ optarg ;; d) # Establezca el directorio de salida out_dir = $ optarg ;; \?) echo "Opción inválida: -$ Optarg"> & 2 Salida 1 ;; :) Opción echo " -$ Optarg requiere un argumento."> & 2 Salida 1 ;; Esacdone # hacer algo con el archivo de entrada y el directorio de salida

5. Evite la codificación dura

Al crear scripts de shell para la automatización, evite valores de codificación difícil como direcciones IP, rutas de archivos u otros detalles específicos del sistema. En su lugar, use variables o archivos de configuración para almacenar y hacer referencia a esta información. Esto hará que el script sea más portátil y más fácil de mantener en el futuro.

Por ejemplo, en lugar de codificar una ruta de archivo como "/Var/log/mensajes", Use una variable como $ Log_path:

#!/bin/bash log_path = "/var/log/mensajes" Cat $ log_path
12345#!/bin/bash log_path = "/var/log/mensajes" Cat $ log_path

6. Usar declaraciones condicionales

Las declaraciones condicionales son útiles en las secuencias de comandos para tomar decisiones basadas en ciertas condiciones. La declaración condicional más común en bash es la declaración if.

#!/bin/bash if [-e/tmp/file.txt] entonces echo "archivo existe el archivo" más eco "no existe" Fi
12345678#!/bin/bash if [-e/tmp/file.txt] entonces echo "archivo existe el archivo" más eco "no existe" Fi

Este script verifica si el archivo "/Tmp/archivo.TXT" existe. Si lo hace, se imprime "El archivo existe", Y si no es así, imprime "El archivo no existe".

7. Usar funciones

Las funciones son bloques de código que se pueden llamar varias veces desde un script. Ayudan a mantener el código organizado y facilitan mantener.

#!/bin/bash función check_disk_space df -h check_disk_space
1234567#!/bin/bash función check_disk_space df -h check_disk_space

Este script define una función "Check_disk_space" que dirige el "DF -H" Comando para mostrar el uso del espacio en disco. Luego se llama a la función al final del script.

8. Usar registro

El registro es una parte importante de SHell Scripting para DevOps porque ayuda a solucionar problemas de errores y rastrear la ejecución del script. El comando logger se puede usar para enviar mensajes al registro del sistema.

#!/bin/bash función check_disk_space df -h logger "espacio de disco marcado" check_disk_space
12345678#!/bin/bash función check_disk_space df -h logger "espacio de disco marcado" check_disk_space

Este script envía un mensaje al registro del sistema usando el comando logger cuando se llama a la función check_disk_space.

Conclusión

Shell Scripting es una habilidad esencial para los profesionales de DevOps. Siguiendo estas mejores prácticas y consejos, puede crear scripts más efectivos y mantenibles para la automatización y la administración del sistema. Recuerde siempre probar sus scripts a fondo y usar el control de versiones para rastrear los cambios.