
En esta guía, vamos a discutir qué es Shfmt, cómo instalar Shfmt en Linux y, finalmente, formatear programas de shell con Shfmt en Linux.
1. Introducción
Si tiene experiencia en programación, es posible que esté familiarizado con términos como formateo, pelusa, etc.
Hay importantes herramientas de apoyo que vienen con cada editor de código para facilitar nuestra vida de programación.
Del mismo modo, tenemos para los scripts de shell shfmt. shfmt se utiliza para formatear, analizar e interpretar sus scripts de shell. Shfmt admite shells bash, mksh y posix.
Shfmt es altamente configurable y puede formatear su código de diversas formas y convenciones.
Puede instalar y utilizar la herramienta Shfmt desde la línea de comandos para trabajar con sus scripts de shell. También hay complementos en editores de texto populares que usan shfmt para formatear sus scripts de shell.
2. Instale Shfmt en Linux
Shfmt está disponible como una aplicación instantánea. Si su distribución tiene Snap instalado, puede instalar shfmt con el siguiente comando:
$ sudo snap install shfmt
La otra forma de instalar Shfmt es usar el siguiente comando de una línea:
$ curl -sS https://webinstall.dev/shfmt | bash
Los dos métodos anteriores se pueden utilizar independientemente de la distribución que esté ejecutando. Hay algunas distribuciones en las que puede instalar shfmt desde sus repositorios de paquetes.
Para instalar shfmt en Alpine Linux, ejecute:
$ sudo apk add shfmt
Instale shfmt en Arch Linux, EndeavorOS y Manjaro Linux:
$ sudo pacman -S shfmt
Instale shfmt en FreeBSD.
$ sudo pkg install devel/shfmt
$ sudo pkg install shfmt
3. Formatee los programas de shell con Shfmt en Linux
Si es la primera vez que usa Shfmt, comience ejecutando el help
Comando para tener una idea de qué opciones admite shfmt:
$ shfmt --help
Ahora déjame mostrarte un ejemplo. Hice un script de shell sin el formato adecuado.
Eche un vistazo a la imagen de arriba. Parece extraño, ¿no?
Formateemos este script usando formato shfmt
Como a continuación:
$ shfmt dummy.sh
Shfmt comienza a formatear el script especificado.
Aquí está el resultado del script anterior antes y después de la optimización:
En el resultado anterior, puede ver que nuestro script está bien formateado.
Quizás se pregunte por qué la sangría está configurada para establecer pestaña. Esto es estándar y se puede cambiar.
3.1. Sangría personalizada
Yo siempre sigo Secuencia de comandos de documentos de estilo de script de shell de Google y poner la sangría en 2 lugares en lugar de pestañas.
Para establecer una sangría personalizada: -i
Bandera. Veamos qué dice el menú de ayuda al respecto. -i
Bandera:
Cualquier valor mayor que cero se marca con. a entregar -i
bandera es el número de espacios utilizados para la intención.
$ shfmt -i 2 scriptname.sh
3.2. Salida de estilo diferencial
Si necesita información sobre qué se formateó exactamente, puede usar -d
Bandera. Eche un vistazo a la imagen de abajo, muestra lo que está formateado en color verde +
Símbolo.
3.3. Enumere los scripts que se formatearán
Puede utilizar el … -l
Bandera que obtiene la lista de scripts a formatear.
Para demostrar esto, crearé tres archivos de script. Dejé el segundo y tercer guiones sin formato. Y tengo mucho espacio en eso echo
Testimonio de los actos 2º y 3º.
Ahora, cuando ejecuto el comando shfmt con el. ejecutar -l
Marcar, solo debería seleccionar mis segundos archivos de muestra 2 y 3:
$ shfmt -l sample*.sh sample2.sh sample3.sh
3.4. Escribir salida en archivo
De forma predeterminada, Shfmt escribe la salida del script formateado en stdout, el terminal. Si desea escribir la salida en un archivo, puede -w
Bandera.
$ shfmt -w scriptname.sh
3.5. Encuentra scripts de shell en la ruta
Con -f
Flag shfmt escanea de forma recursiva el directorio especificado y encuentra todos los scripts de shell.
No importa si un script tiene la extensión .sh
o no. Shfmt puede reconocer todos los scripts de shell, incluso si no tienen extensiones.
$ shfmt -f /home/ostechnix /home/ostechnix/.config/envman/load.sh /home/ostechnix/.local/bin/webi /home/ostechnix/Downloads/sampleshell /home/ostechnix/dummy.sh
3.6. Shfmt también puede detectar errores
Shfmt no solo se utiliza para formatear scripts de shell. También puede detectar los errores en los scripts.
Eche un vistazo a la imagen de abajo donde faltan los corchetes de salida de mi función y shfmt lo reconoce.
También puede usar la función de verificación de sintaxis integrada en Bash escribiendo -n
Bandera que valida tu código y
enumere todos los errores.
$ bash -vn scriptname.sh
3.7. Shfmt en editores externos
En tiempo real, puede usar cualquier editor de texto de su elección como Vim, Atom, Sublime Text, Vs-Code, etc. Algunos de estos editores de texto pueden tener soporte nativo para formatear scripts bash.
Cada editor de código tiene un complemento que se integra con shfmt. Vaya al repositorio oficial de GitHub (enlace al final) y en la parte inferior de la página verá la lista de complementos para cada editor de texto que usa shfmt debajo.
Conclusión
En este manual hemos visto ejemplos prácticos de qué es Shfmt y cómo formatear programas de shell con Smfmt. Shfmt será una herramienta muy útil para mantener sus scripts limpios, ordenados y organizados. Integre editores de texto y tendrá un flujo de trabajo muy fluido al crear los scripts.
Recurso:
Imagen seleccionada de Pixabay.