GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo formatear programas Shell usando Shfmt en Linux

En esta guía, discutiremos qué es Shfmt, cómo instalar Shfmt en Linux y, finalmente, cómo formatear programas de shell usando Shfmt en Linux.

1. Introducción

Si tiene experiencia en programación, es posible que conozca términos como formato, pelusa, etc.

Hay importantes herramientas de apoyo que vienen con cada editor de código para hacernos la vida más fácil mientras codificamos.

De manera similar, para los scripts de shell, tenemos shfmt . shfmt se usa 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 varias formas y convenciones.

Puede instalar y usar la herramienta Shfmt desde la línea de comandos para trabajar con sus scripts de shell. También hay complementos disponibles en editores de texto populares que usarán shfmt para formatear sus scripts de shell.

2. Instalar Shfmt en Linux

Shfmt está disponible como aplicación instantánea. Si su distribución tiene instalado Snap, puede instalar shfmt usando el comando:

$ sudo snap install shfmt

La otra forma de instalar Shfmt es usando el siguiente comando de una sola línea:

$ curl -sS https://webinstall.dev/shfmt | bash

Los dos métodos anteriores se pueden usar 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, EndeavourOS y Manjaro Linux:

$ sudo pacman -S shfmt

Instale shfmt en FreeBSD.

$ sudo pkg install devel/shfmt
$ sudo pkg install shfmt

3. Formatear programas de shell usando Shfmt en Linux

Si es la primera vez que usa Shfmt, comience ejecutando la help Comando para tener una idea de qué opciones admite shfmt:

$ shfmt --help

Ahora, permítanme mostrarles un ejemplo. Creé un script de shell sin el formato adecuado.

Echa un vistazo a la imagen de arriba. Se ve raro, ¿verdad?

Démosle formato a este script usando shfmt como a continuación:

$ shfmt dummy.sh

Shfmt comenzará a formatear el script dado.

Aquí está el resultado del script anterior antes y después de la optimización:

En el resultado anterior, puede ver que nuestro script tiene un buen formato.

Quizás se pregunte por qué la sangría está establecida en tabulador. . Esto es predeterminado y modificable.

3.1. Sangría personalizada

Siempre sigo los documentos de estilo de script de shell de Google y establezca la sangría en 2 espacios en lugar de pestañas.

Para establecer una sangría personalizada, use -i bandera. Veamos qué dice el menú de ayuda sobre este -i bandera:

Cualquier valor mayor que cero se pasa con -i flag es la cantidad de espacios que se utilizarán para intentar.

$ shfmt -i 2 scriptname.sh

3.2. Salida de estilo diferencial

Si necesita información sobre qué se ha formateado exactamente, puede usar -d bandera. Eche un vistazo a la imagen de abajo, muestra lo que está formateado en color verde con + símbolo.

3.3. Lista de secuencias de comandos para formatear

Puedes usar el -l indicador que obtendrá la lista de scripts que deben formatearse.

Para demostrar esto, voy a crear tres archivos de script. Dejé los scripts segundo y tercero sin formatear. Y he dado mucho espacio en el echo declaración de los expedientes 2º y 3º.

Ahora, si ejecuto el comando shfmt con -l marca, debería elegir mi segundo archivo de muestra 2 y 3 solamente:

$ shfmt -l sample*.sh
sample2.sh
sample3.sh

3.4. Escribir salida en archivo

De manera predeterminada, Shfmt escribe la salida del script formateado en stdout, que es la terminal. Si desea escribir la salida en un archivo, puede usar -w bandera.

$ shfmt -w scriptname.sh

3.5. Encuentra scripts de shell en la ruta

Con -f flag, shfmt escaneará el directorio dado recursivamente y encontrará 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 es solo para formatear scripts de shell. También puede detectar los errores en los scripts.

Eche un vistazo a la imagen de abajo, donde faltan mis llaves para terminar la función y shfmt lo detecta.

También puede usar la función de verificación de sintaxis incorporada de bash usando -n bandera que validará su código y
enumere todos los errores.

$ bash -vn scriptname.sh

3.7. Shfmt en editores externos

En tiempo real, puede usar cualquiera de los editores 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 (el enlace se encuentra 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 esta guía hemos visto qué es Shfmt y cómo formatear programas Shell usando Smfmt con ejemplos prácticos. Shfmt será una herramienta muy útil para mantener sus scripts limpios, ordenados y organizados. Integre con editores de texto y tendrá un flujo de trabajo muy fluido para crear los scripts.


Linux
  1. Cómo instalar Python en Linux

  2. Cómo instalar Java en Linux

  3. Cómo instalar el servicio SSH (shell seguro) en Kali Linux

  4. Cómo depurar programas C en Linux usando gdb

  5. ¿Cómo instalo Fish Shell en AWS Linux?

Cómo instalar Go Language en Linux

Cómo encontrar detalles del sistema Linux usando inxi

Cómo instalar y usar ZSH Shell en Linux

Cómo instalar GNOME en Ubuntu Linux

Cómo instalar Linux Bash Shell en Windows 10

Cómo instalar y usar Nu Shell en Linux