GNU/Linux >> Linux Esercitazione >  >> Linux

Come formattare i programmi Shell usando Shfmt in Linux

In questa guida discuteremo cos'è Shfmt, come installare Shfmt in Linux e infine come formattare i programmi shell usando Shfmt in Linux.

1. Introduzione

Se provieni da un background di programmazione, potresti conoscere termini come formattazione, linting, ecc.

Ci sono importanti strumenti di supporto forniti con ogni editor di codice per semplificarci la vita mentre codifichiamo.

Allo stesso modo, per gli script di shell, abbiamo shfmt . shfmt viene utilizzato per formattare, analizzare e interpretare gli script della shell. Shfmt supporta le shell Bash, mksh e Posix.

Shfmt è altamente configurabile e può formattare il tuo codice in diversi modi e convenzioni.

Puoi installare e utilizzare lo strumento Shfmt dalla riga di comando per lavorare con gli script della shell. Inoltre sono disponibili plug-in nei più diffusi editor di testo che utilizzeranno shfmt per formattare gli script della shell.

2. Installa Shfmt in Linux

Shfmt è disponibile come applicazione snap. Se la tua distribuzione ha installato snap, puoi installare shfmt usando il comando:

$ sudo snap install shfmt

L'altro modo per installare Shfmt è usare il seguente comando one-liner:

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

I due metodi precedenti possono essere utilizzati indipendentemente dalla distribuzione in esecuzione. Ci sono alcune distribuzioni in cui puoi installare shfmt dai loro repository di pacchetti.

Per installare shfmt in Alpine Linux, esegui:

$ sudo apk add shfmt

Installa shfmt in Arch Linux, EndeavourOS e Manjaro Linux:

$ sudo pacman -S shfmt

Installa shfmt in FreeBSD.

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

3. Formatta i programmi shell usando Shfmt in Linux

Se è la prima volta che usi Shfmt, inizia eseguendo la help comando per avere un'idea di quali opzioni supporta shfmt:

$ shfmt --help

Ora permettetemi di mostrarvi un esempio. Ho creato uno script di shell senza una formattazione adeguata.

Dai un'occhiata all'immagine sopra. Sembra strano, vero?

Formattiamo questo script usando shfmt come di seguito:

$ shfmt dummy.sh

Shfmt inizierà a formattare lo script specificato.

Ecco l'output dello script precedente prima e dopo l'ottimizzazione:

Dall'output sopra, puoi vedere che il nostro script è ben formattato.

Potresti chiederti perché il rientro è impostato su tab . Questo è predefinito e modificabile.

3.1. Rientro personalizzato

Seguo sempre documenti sullo stile degli script della shell di Google e imposta il rientro su 2 spazi invece di schede.

Per impostare il rientro personalizzato usa -i bandiera. Vediamo cosa ha da dire il menu di aiuto su questo -i bandiera:

Qualsiasi valore maggiore di zero viene passato con -i flag è la quantità di spazi che verranno utilizzati per l'intenzione.

$ shfmt -i 2 scriptname.sh

3.2. Output stile Diff

Se hai bisogno di informazioni su cosa è stato esattamente formattato puoi usare -d bandiera. Dai un'occhiata all'immagine qui sotto, mostra cosa è formattato in verde con + simbolo.

3.3. Elenca gli script da formattare

Puoi usare -l flag che otterrà l'elenco degli script che devono essere formattati.

Per dimostrarlo, creerò tre file di script. Ho lasciato il secondo e il terzo script non formattati. E ho dato molto spazio in echo dichiarazione del 2° e 3° file.

Ora, se eseguo il comando shfmt con -l flag, dovrebbe selezionare solo il mio secondo file di esempio 2 e 3:

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

3.4. Scrivi output su file

Per impostazione predefinita, Shfmt scrive l'output dello script formattato su stdout, che è il terminale. Se desideri scrivere l'output in un file, puoi usare -w bandiera.

$ shfmt -w scriptname.sh

3.5. Trova gli script di shell nel percorso

Con -f flag, shfmt eseguirà la scansione della directory data in modo ricorsivo e troverà tutti gli script della shell.

Non importa se uno script ha l'estensione .sh o no. Shfmt può riconoscere tutti gli script di shell anche se non hanno estensioni.

$ 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. Anche Shfmt può rilevare gli errori

Shfmt non serve solo per formattare gli script di shell. Può anche individuare gli errori negli script.

Dai un'occhiata all'immagine qui sotto, dove mancano le parentesi graffe per terminare la funzione e shfmt lo individua.

Puoi anche usare la funzione di controllo della sintassi incorporata in bash usando -n flag che convaliderà il tuo codice e
elenca tutti gli errori.

$ bash -vn scriptname.sh

3.7. Shfmt in editor esterni

In tempo reale, puoi utilizzare uno qualsiasi degli editor di testo di tua scelta come Vim, Atom, Sublime Text, Vs code, ecc. Alcuni di questi editor di testo potrebbero avere il supporto nativo per formattare gli script bash.

Ogni editor di codice ha un plugin che si integra con shfmt. Vai al repository ufficiale di GitHub (link fornito alla fine) e in fondo alla pagina vedrai l'elenco dei plugin per ogni editor di testo che usa shfmt sotto.

Conclusione

In questa guida abbiamo visto cos'è Shfmt e come formattare i programmi Shell usando Smfmt con esempi pratici. Shfmt sarà uno strumento molto utile per mantenere i tuoi script puliti, ordinati e organizzati. Integra con gli editor di testo e avrai un flusso di lavoro molto fluido nella creazione degli script.


Linux
  1. Come installare Python su Linux

  2. Come installare Java su Linux

  3. Come installare il servizio SSH (shell sicuro) su Kali Linux

  4. Come eseguire il debug di programmi C in Linux usando gdb

  5. Come installare NodeJS su Linux

Come installare Go Language in Linux

Come trovare i dettagli del sistema Linux usando inxi

Come installare e utilizzare ZSH Shell in Linux

Come installare GNOME in Ubuntu Linux

Come installare Linux Bash Shell su Windows 10

Come installare e utilizzare Nu Shell su Linux