Como hacer tus scripts en Bash nivel profesional

Scripts en Bash

Este es uno de los capítulos del tutorial Scripts en Bash. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

La verdad es que para hacer tus scritps en Bash no necesitas grandes herramientas, ni mucho menos. Con un editor de texto y con una terminal donde probarlo tienes mas que suficiente. ¿o no?. Inicialmente te diría que si, sin embargo, con el paso del tiempo, conforme va ganando experiencia a la hora de implementar tus scripts en Bash, te vas volviendo mas exigente. Tu mismo buscas mejorar la calidad de esos scripts. Es mas, es posible, que con el paso del tiempo, al revisar tus scripts anteriores llegues a pensar ¿como hice yo esto? ¡Madre mía!. Sin embargo, existe una posibilidad de mejorar los scripts que escribes y de reducir esta situación. Es decir, existe la posibilidad de hacer tus scripts en Bash nivel profesional.

¿Como puedes hacer tus scripts en Bash como un profesional? Utilizando un linter… ¿Un linter?¿Que es eso de un linter?

Como hacer tus scripts en Bash nivel profesional

Empecemos por el principio, ¿que es un linter? Un linter es una herramienta para analizar código en busca de errores. Realmente no solo analiza tu código en busca de errores, sino que además te sugiere mejoras respecto a tu solución tanto en lo que es el propio código como en lo que a estilo se refiere. Como ves un linter es una potente ayuda que te llevará a otro nivel.

Existen diferentes linter, tanto por lenguaje de programación como características. Algunos se centran mas en el estilo y otros mas en la corrección de posibles errores.

ShellCheck

En el caso particular que estamos tratando, y con el objeto de hacer tus scripts en Bash como un profesional puedes utilizar ShellCheck como un linter en Bash.

ShellCheck es un herramienta liberada bajo licencia GPL v3 que te ayudará a revisar e inspeccionar tus scripts en Bash en busca de errores. ShellCheck es una herramienta de análisis estático para scripts en Bash y sh. Si quieres saber si tu script tiene un bug esta es la herramienta.

Instalación de ShellCheck

ShellCheck es una herramienta que puedes utilizar tanto desde la propia terminal, como desde su página web o incluso integrada en tu propio editor. Para el caso de la web, simplemente tienes que copiar tu script en ShellCheck y revisar tu código.

Si lo quieres utilizar directamente desde una terminal, tienes que instalar esta herramienta. Sobre como instalar ShellCheck, dependerá de tu distribución. Por ejemplo si utilizas Ubuntu, simplemente abre una terminal y ejecuta las siguientes instrucciones,

sudo apt install shellcheck

En el caso de Manjaro o Arch, la instrucción a ejecutar será,

sudo pacman -S shellcheck

Integración con tu editor

Si la quieres integrar con tu editor de código preferida, de nuevo dependerá del que estés utilizando. Por ejemplo,

  • Vim. Utiliza ALE, Neomake o Syntastic
  • Sublime puedes utilizar SublimeLiner
  • VSCode utiliza vscode-shellcheck
  • NeoVim puedes utilizar LSP integrado con efm-langserver.

De los anteriores yo utilizo la opción NeoVim, que es mi editor de cabecera actualmente. Si quieres conocer cual es mi configuración, simplemente le tienes que dar un vistazo a mis Dotfiles.

Para ello he utilizando el plugin nvmim-lspconfig, con la siguiente configuración para Bash,

sh = {
    {LintCommand = "shellcheck -f gcc -x",
     LintFormats = {
         "%f:%l:%c: %trror: %m",
         "%f:%l:%c: %tarning: %m",
         "%f:%l:%c: %tote: %m"}
     }
},

Un paso mas allá

No pienses que ShellCheck es una herramienta única y exclusiva para su uso de forma interactiva. También se utiliza ShellCheck en distintas plataformas y servicios para analizar de forma estática tu código. Algunas de estas plataformas y servicios son Travis, GitHub, GitLab o SonarQube. Pero, esto queda fuera del alcande de este tutorial.

Uso y funcionamiento de ShellCheck

En el caso de que lo tengas integrado en tu editor, como es mi caso con NeoVim, no tienes que hacer gran cosa. Simplemente escribir tu script en Bash, y el ya se encargará de ir revisando de forma dinámica tu código conforme vas escribiéndolo. Esto es súper cómodo.

En otro caso, tendrás que ejecutar ShellCheck conforme vayas escribiendo tu script en Bash o una vez terminado para corregir aquellos errores que te marque.

Por ejemplo, para revisar un script simplemente tienes que ejecutar la siguiente instrucción tal y como te muestro en este ejemplo,

shellcheck convert_svg_to_png.sh

La resupuesta de shellcheck es similar a la que indico a continuación,

❯ shellcheck convert_svg_to_png.sh

In convert_svg_to_png.sh line 29:
    echo $output
         ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
    echo "$output"

For more information:
  https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...

El vídeo

Un vídeo para ilustrarte el funcionamiento del shellcheck y el potencial que tiene. Una herramienta que te permitirá llevar tus scripts en Bash a otra liga.

Conclusión

Tener una herramienta como shellcheck es una auténtica garantía de éxito. No solo te permite corregir tus scripts, sino que, utilizándolo de forma interactiva a través de tu IDE de referencia, ya sea NeoVim, Visual Studio Code o el que tu utilices, verás como mejoras en tus habilidades de scripting.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.