ShellCheck. es una herramienta de análisis estático que muestra advertencias y sugerencias sobre código incorrecto en scripts de shell bash/sh. Se puede usar de varias maneras: desde la web pegando su script de shell en un editor en línea (Ace, un editor de código independiente escrito en JavaScript) en https://www.shellcheck.net (siempre está sincronizado con la última versión de git commit, y es la forma más sencilla de probar ShellCheck) para obtener comentarios instantáneos.
Alternativamente, puede instalarlo en su máquina y ejecutarlo desde la terminal, integrarlo con su editor de texto y en su compilación o conjuntos de pruebas.
Hay tres cosas que ShellCheck hace principalmente:
- Señala y explica los problemas de sintaxis típicos de los principiantes que hacen que un shell dé mensajes de error crípticos.
- Señala y explica problemas semánticos de nivel intermedio típicos que hacen que un shell se comporte de manera extraña y contraria a la intuición.
- También señala advertencias sutiles, casos de esquina y trampas que pueden causar un script de usuario avanzado que de otro modo funcionaría fallará en circunstancias futuras.
En este artículo, mostraremos cómo instalar y usar ShellCheck de varias formas para encontrar errores o código incorrecto en sus scripts de shell en Linux.
Cómo instalar y usar ShellCheck en Linux
ShellCheck. se puede instalar fácilmente localmente a través de su administrador de paquetes como se muestra.
En Debian/Ubuntu
# apt-get install shellcheck
En RHEL/CentOS
# yum-y install epel-release
# yum install ShellCheck
On Fedora
# dnf install ShellCheck
Una vez instalado ShellCheck, echemos un vistazo a cómo usar ShellCheck en los diversos métodos que mencionamos antes.
Usando ShellCheck desde la Web
Vaya a https://www.shellcheck.net y pegue su script en el editor Ace provisto, verá el resultado en la parte inferior del editor como se muestra en la captura de pantalla a continuación.
En el siguiente ejemplo, el script de shell de prueba consta de las siguientes líneas:
#!/bin/bash
#declare variables MINARGS = 2 E_N OTROOT = 50 E_MINARGS = 100
# valores de eco de las variables echo
$ MINARGS echo
$ E_NONROOT exit 0; ShellCheck-Herramienta de análisis de scripts de shell en línea
De la captura de pantalla anterior, las dos primeras variables E_NOTROOT. y E_MINARGS. se han declarado pero no se utilizan, ShellCheck los informa como “errores sugestivos”:
SC2034: E_NOTROOT parece no utilizado. Verifíquelo o expórtelo. SC2034: E_MINARGS aparece sin usar. Verifíquelo o expórtelo.
Luego, en segundo lugar, se usó el nombre incorrecto (en la declaración echo $ E_NONROOT. para hacer eco de la variable E_NOTROOT. es por eso que ShellCheck muestra el error:
SC2153: Posible error ortográfico: E_NONROOT puede no estar asignado, pero E_NOTROOT es
Una vez más, cuando observa los comandos de eco, las variables no se han entre comillas dobles (ayuda a evitar el globbing y la división de palabras), por lo tanto, Shell Check muestra la advertencia:
SC2086: Comillas dobles para evitar la aparición de globos y la división de palabras. Uso de ShellCheck desde la terminal
También puede ejecutar ShellCheck desde la línea de comandos, usaremos el mismo script de shell anterior de la siguiente manera:
$ shellcheck test.sh ShellCheck: comprueba el código incorrecto en los scripts de Shell mediante ShellCheck desde el editor de texto
También puede ver sugerencias y advertencias de ShellCheck. directamente en una variedad de editores, esta es probablemente una forma más eficiente de usar ShellCheck, una vez que guarda un archivo, le muestra cualquier error en el código.
En Vim. use ALE o Syntastic (usaremos esto):
Empiece por instalar Pathogen. para que sea fácil de instalar Syntastic. Ejecute los siguientes comandos para obtener el archivo patógeno.vim. y los directorios que necesita:
# mkdir-p ~/.vim/autoload ~/.vim/bundle && curl-LSso ~/.vim/autoload/patógeno.vim https://tpo.pe/pathogen.vim
Luego agregue esto a su archivo ~/.vimrc.
ejecute el patógeno # infect ()
Una vez que haya instalado el patógeno, ahora puede poner syntastic en ~/.vim/bundle. de la siguiente manera:
# cd ~/.vim/bundle && git clone–depth = 1 https://github.com/vim-syntastic/syntastic.git
A continuación, cierre vim y vuelva a iniciarlo para volver a cargarlo, luego escriba el siguiente comando:
: Helptags
Si todos va bien, debe tener ShellCheck. integrado con Vim. las siguientes capturas de pantalla muestran cómo funciona utilizando el mismo script anterior.
Verifique el código de script de Shell incorrecto en Vim
En caso de que obtenga un error después de seguir los pasos anteriores, es posible que no haya instalado Pathogen. correctamente. Vuelva a realizar los pasos, pero asegúrese de haber hecho lo siguiente:
- Creó tanto ~/.vim/autoload. como ~/.vim/bundle. directorios.
- Se agregó la línea de ejecución del patógeno # infect () a su archivo ~/.vimrc.
- ¿Se clonó git de syntastic inside ~/.vim/bundle.
- Utilice los permisos adecuados para acceder a todos los directorios anteriores.
También puede utilizar otros editores para comprobar código incorrecto en scripts de shell como:
- En Emacs. use Flycheck.
- En Sublime, emplee SublimeLinter.
- En Atom, utilice Linter.
- En la mayoría de los demás editores, utilice la compatibilidad con errores de GCC.
Nota. Utilice la galería de código incorrecto para realizar más ShellChecking.
ShellCheck Github Repository: https://github.com/koalaman/shellcheck
¡Eso es! En este artículo, mostramos cómo instalar y usar ShellCheck. para encontrar errores o código incorrecto en sus scripts de shell en Linux. Comparta sus pensamientos con nosotros a través de la sección de comentarios a continuación.
¿Conoce alguna otra herramienta similar? En caso afirmativo, comparta información sobre ellos también en los comentarios.