Introducción a ShellCheck
- ShellCheck es una herramienta que encuentra errores en scripts de shell.
- Se puede instalar en un entorno local mediante
cabal, apt, dnf, pkg y brew.
- Al pegar un script, ShellCheck muestra el resultado del análisis.
Características de ShellCheck
- ShellCheck se puede usar libremente bajo la licencia GPLv3.
- Está documentado en la wiki de ShellCheck, y el código fuente se puede consultar en GitHub.
- Ya viene empaquetado en la mayoría de las distribuciones o gestores de paquetes.
- Es compatible como linter integrado en los principales editores, y puede revisar automáticamente el código de repositorios de GitHub mediante CodeClimate, Codacy y CodeFactor.
- Está escrito en Haskell, por lo que resulta adecuado para usuarios interesados en ese lenguaje.
Agradecimientos
- Expresa un agradecimiento especial a GitHub Sponsors: Gitpod, Mercedes-Benz, BashSupport Pro, per1234, WhitewaterFoundry, cavcrosby, dcminter, photostructure, Cronitor, djdefi, steve-chavez y otros.
Opinión de GN⁺
- Lo más importante de este artículo es que ShellCheck es una herramienta útil para encontrar errores en scripts de shell.
- A la gente le puede resultar interesante que ShellCheck sea gratuito, esté disponible en varias plataformas y editores, y sea fácil de usar.
- En particular, el apoyo de la comunidad de código abierto y el hecho de que esté desarrollado en Haskell pueden resultar atractivos para los desarrolladores de software.
1 comentarios
Comentarios de Hacker News
Precauciones al escribir scripts
-u(nounset) para que se produzca un error al usar variables no declaradas. Una excepción es cuando, al expandir arreglos, un arreglo vacío se considera unbound.-n(noexec) para evitar ejecutar comandos.-e(errexit) también es útil, pero hay que tener en cuenta que solo los comandos "desnudos" que fallen provocan la salida. Para evitar esto, se prefiere agregar|| fail "..."al comando.Descubrimiento de vulnerabilidades en scripts de shell
$ENV_VARa través de$((1 + ENV_VAR)), se puede inyectar código.Shellcheck y strictbash
Menciones sobre Shellcheck
Uso de Haskell y Turtle
Uso de Shellcheck y linters
Servidor de lenguaje para Bash
Efecto de aprendizaje de Shellcheck
Recomendación de uso de Bach
Shellcheck y el manejo de source/import
shes una pesadilla.