GNU/Linux >> Znalost Linux >  >> Linux

Jak formátovat Shell programy pomocí Shfmt v Linuxu

V této příručce budeme diskutovat o tom, co je Shfmt, jak nainstalovat Shfmt v Linuxu a nakonec jak formátovat programy shellu pomocí Shfmt v Linuxu.

1. Úvod

Pokud jste z programátorského prostředí, možná znáte pojmy jako formátování, linting atd.

Každý editor kódu obsahuje důležité podpůrné nástroje, které nám usnadňují život při kódování.

Podobně pro shellové skripty máme shfmt . shfmt se používá k formátování, analýze a interpretaci vašich shell skriptů. Shfmt podporuje shelly Bash, mksh a Posix.

Shfmt je vysoce konfigurovatelný a může formátovat váš kód několika způsoby a konvencemi.

Můžete nainstalovat a používat nástroj Shfmt z příkazového řádku pro práci se skripty shellu. V populárních textových editorech jsou také dostupné pluginy, které budou používat shfmt k formátování vašich shell skriptů.

2. Nainstalujte Shfmt v Linuxu

Shfmt je k dispozici jako aplikace snap. Pokud má vaše distribuce nainstalovaný snap, můžete nainstalovat shfmt pomocí příkazu:

$ sudo snap install shfmt

Dalším způsobem instalace Shfmt je použití následujícího jednořádkového příkazu:

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

Výše uvedené dvě metody lze použít bez ohledu na to, jakou distribuci provozujete. Existuje několik distribucí, kde můžete nainstalovat shfmt z jejich repozitářů balíčků.

Chcete-li nainstalovat shfmt v Alpine Linux, spusťte:

$ sudo apk add shfmt

Nainstalujte shfmt v Arch Linux, EndeavourOS a Manjaro Linux:

$ sudo pacman -S shfmt

Nainstalujte shfmt do FreeBSD.

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

3. Formátujte programy shellu pomocí Shfmt v Linuxu

Pokud používáte Shfmt poprvé, začněte spuštěním help příkaz, abyste získali představu o tom, jaké možnosti shfmt podporuje:

$ shfmt --help

Nyní mi dovolte ukázat vám příklad. Vytvořil jsem skript shellu bez správného formátování.

Podívejte se na obrázek výše. Vypadá to divně, že?

Naformátujme tento skript pomocí shfmt jako níže:

$ shfmt dummy.sh

Shfmt začne formátovat daný skript.

Zde je výstup výše uvedeného skriptu před a po optimalizaci:

Z výše uvedeného výstupu můžete vidět, že náš skript je pěkně naformátovaný.

Možná se divíte, proč je odsazení nastaveno na tabulátor . Toto je výchozí a lze jej upravit.

3.1. Vlastní odsazení

Vždy se řídím dokumenty ve stylu skriptu google shell a nastavte odsazení na 2 mezery místo karet.

Chcete-li nastavit vlastní odsazení, použijte -i vlajka. Podívejme se, co o tomto -i říká nabídka nápovědy příznak:

Jakákoli hodnota větší než nula je předána pomocí -i příznak je množství mezer, které budou použity k zamýšlení.

$ shfmt -i 2 scriptname.sh

3.2. Výstup ve stylu rozdílu

Pokud potřebujete informace o tom, co přesně bylo naformátováno, můžete použít -d vlajka. Podívejte se na obrázek níže, ukazuje, co je naformátováno zelenou barvou s + symbol.

3.3. Seznam skriptů k formátování

Můžete použít -l příznak, který získá seznam skriptů, které je třeba naformátovat.

Abych to demonstroval, vytvořím tři soubory skriptu. Druhý a třetí skript jsem nechal bez formátování. A dal jsem hodně prostoru v echo výpis 2. a 3. souboru.

Nyní, když spustím příkaz shfmt s -l flag, měl by vybrat pouze můj druhý vzorek 2 a 3:

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

3.4. Zapsat výstup do souboru

Ve výchozím nastavení Shfmt zapisuje výstup formátovaného skriptu do stdout, což je terminál. Pokud chcete výstup zapsat do souboru, můžete použít -w vlajka.

$ shfmt -w scriptname.sh

3.5. Najděte skripty shellu v cestě

Pomocí -f flag, shfmt prohledá daný adresář rekurzivně a najde všechny skripty shellu.

Nezáleží na tom, zda má skript příponu .sh nebo ne. Shfmt dokáže rozpoznat všechny skripty shellu, i když nemají rozšíření.

$ 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 také dokáže detekovat chyby

Shfmt není jen pro formátování shell skriptů. Dokáže také odhalit chyby ve skriptech.

Podívejte se na obrázek níže, kde moje složené závorky pro ukončení funkce chybí a shfmt to zaznamená.

Můžete také použít vestavěnou funkci kontroly syntaxe bash pomocí -n příznak, který ověří váš kód a
seznam všech chyb.

$ bash -vn scriptname.sh

3.7. Shfmt v externích editorech

V reálném čase můžete používat libovolný textový editor dle vašeho výběru, jako je Vim, Atom, Sublime Text, Vs kód atd. Některé z těchto textových editorů mohou mít nativní podporu pro formátování bash skriptů.

Každý editor kódu má plugin, který se integruje s shfmt. Přejděte do oficiálního úložiště GitHub (odkaz je uveden na konci) a ve spodní části stránky uvidíte seznam pluginů pro každý textový editor, který používá shfmt.

Závěr

V této příručce jsme s praktickými příklady viděli, co je Shfmt a jak formátovat programy Shell pomocí Smfmt. Shfmt bude velmi užitečným nástrojem, který udrží vaše skripty čisté, úhledné a organizované. Integrujte se s textovými editory a budete mít velmi hladký pracovní postup při vytváření skriptů.


Linux
  1. Jak nainstalovat službu SSH (zabezpečený shell) na Kali Linux

  2. Jak ladit programy C v Linuxu pomocí gdb

  3. Jak nainstalovat FFmpeg v Linuxu

  1. Jak nainstalovat Python na Linux

  2. Jak nainstalovat Javu na Linux

  3. Jak nainstalovat NodeJS na Linux

  1. Jak nainstalovat Linux ve 3 krocích

  2. Jak nainstalovat Kali Linux

  3. Jak nainstaluji Fish Shell na AWS Linux