GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So formatieren Sie Shell-Programme mit Shfmt unter Linux

In diesem Handbuch werden wir besprechen, was Shfmt ist, wie Shfmt unter Linux installiert wird und schließlich, wie Shell-Programme mit Shfmt unter Linux formatiert werden.

1. Einführung

Wenn Sie Programmierer sind, kennen Sie vielleicht Begriffe wie Formatierung, Linting usw.

Es gibt wichtige unterstützende Tools, die mit jedem Code-Editor geliefert werden, um uns das Leben beim Programmieren zu erleichtern.

In ähnlicher Weise haben wir für Shell-Skripte shfmt . shfmt wird verwendet, um Ihre Shell-Skripte zu formatieren, zu parsen und zu interpretieren. Shfmt unterstützt Bash-, mksh- und Posix-Shells.

Shfmt ist hochgradig konfigurierbar und kann Ihren Code auf verschiedene Arten und Konventionen formatieren.

Sie können das Shfmt-Tool von der Befehlszeile aus installieren und verwenden, um mit Ihren Shell-Skripten zu arbeiten. Außerdem gibt es Plugins für gängige Texteditoren, die shfmt verwenden, um Ihre Shell-Skripte zu formatieren.

2. Installieren Sie Shfmt unter Linux

Shfmt ist als Snap-Anwendung verfügbar. Wenn Ihre Distribution Snap installiert hat, können Sie shfmt mit folgendem Befehl installieren:

$ sudo snap install shfmt

Die andere Möglichkeit, Shfmt zu installieren, ist die Verwendung des folgenden Einzeiler-Befehls:

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

Die beiden oben genannten Methoden können unabhängig davon verwendet werden, welche Distribution Sie verwenden. Es gibt ein paar Distributionen, bei denen Sie shfmt aus ihren Paket-Repositories installieren können.

Um shfmt unter Alpine Linux zu installieren, führen Sie Folgendes aus:

$ sudo apk add shfmt

Installieren Sie shfmt unter Arch Linux, EndeavourOS und Manjaro Linux:

$ sudo pacman -S shfmt

Installieren Sie shfmt in FreeBSD.

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

3. Formatieren Sie Shell-Programme mit Shfmt unter Linux

Wenn Sie Shfmt zum ersten Mal verwenden, führen Sie zunächst help aus Befehl, um eine Vorstellung davon zu bekommen, welche Optionen shfmt unterstützt:

$ shfmt --help

Lassen Sie mich Ihnen nun ein Beispiel zeigen. Ich habe ein Shell-Skript ohne richtige Formatierung erstellt.

Schauen Sie sich das obige Bild an. Es sieht komisch aus, oder?

Lassen Sie uns dieses Skript mit shfmt formatieren wie unten:

$ shfmt dummy.sh

Shfmt beginnt mit der Formatierung des angegebenen Skripts.

Hier ist die Ausgabe des obigen Skripts vor und nach der Optimierung:

Aus der obigen Ausgabe können Sie sehen, dass unser Skript gut formatiert ist.

Sie fragen sich vielleicht, warum der Einzug auf Tab eingestellt ist . Dies ist die Standardeinstellung und kann geändert werden.

3.1. Benutzerdefinierter Einzug

Ich folge immer der Dokumentation im Google Shell-Skriptstil und setzen Sie den Einzug auf 2 Leerzeichen statt Tabulatoren.

Um einen benutzerdefinierten Einzug festzulegen, verwenden Sie -i Flagge. Mal sehen, was das Hilfemenü zu diesem -i zu sagen hat Flagge:

Jeder Wert größer Null wird mit -i übergeben Flag ist die Anzahl der Leerzeichen, die verwendet werden, um zu beabsichtigen.

$ shfmt -i 2 scriptname.sh

3.2. Ausgabe im Diff-Stil

Wenn Sie Informationen darüber benötigen, was genau formatiert wurde, können Sie -d verwenden Flagge. Schauen Sie sich das folgende Bild an, es zeigt, was in grüner Farbe mit + formatiert ist Symbol.

3.3. Zu formatierende Skripte auflisten

Sie können das -l verwenden Flag, das die Liste der Skripte erhält, die formatiert werden müssen.

Um dies zu demonstrieren, werde ich drei Skriptdateien erstellen. Das zweite und dritte Skript habe ich unformatiert gelassen. Und ich habe viel Platz im echo gegeben Erklärung der 2. und 3. Datei.

Wenn ich jetzt den Befehl shfmt mit dem -l ausführe Flag, es sollte nur meine zweiten Beispieldateien 2 und 3 auswählen:

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

3.4. Ausgabe in Datei schreiben

Standardmäßig schreibt Shfmt die Ausgabe des formatierten Skripts auf stdout, das Terminal. Wenn Sie die Ausgabe in eine Datei schreiben möchten, können Sie -w verwenden Flagge.

$ shfmt -w scriptname.sh

3.5. Finden Sie Shell-Skripte im Pfad

Mit -f Flag durchsucht shfmt das angegebene Verzeichnis rekursiv und findet alle Shell-Skripte.

Dabei spielt es keine Rolle, ob ein Skript die Endung .sh hat oder nicht. Shfmt kann alle Shell-Skripte erkennen, auch wenn sie keine Erweiterungen haben.

$ 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 kann auch Fehler erkennen

Shfmt dient nicht nur zum Formatieren von Shell-Skripten. Es kann auch die Fehler in den Skripten erkennen.

Schauen Sie sich das folgende Bild an, wo meine geschweiften Klammern zum Beenden der Funktion fehlen und shfmt sie erkennt.

Sie können auch die in Bash integrierte Syntaxprüfungsfunktion verwenden, indem Sie -n verwenden Flagge, die Ihren Code validiert und
alle Fehler auflisten.

$ bash -vn scriptname.sh

3.7. Shfmt in externen Editoren

In Echtzeit können Sie einen der Texteditoren Ihrer Wahl wie Vim, Atom, Sublime Text, Vs-Code usw. verwenden. Einige dieser Texteditoren verfügen möglicherweise über native Unterstützung zum Formatieren von Bash-Skripten.

Jeder Code-Editor verfügt über ein Plugin, das sich in shfmt integriert. Gehen Sie zum offiziellen GitHub-Repository (Link am Ende angegeben) und unten auf der Seite sehen Sie die Liste der Plugins für jeden Texteditor, der darunter shfmt verwendet.

Schlussfolgerung

In diesem Handbuch haben wir anhand praktischer Beispiele gesehen, was Shfmt ist und wie Shell-Programme mit Smfmt formatiert werden. Shfmt wird ein sehr nützliches Werkzeug sein, um Ihre Skripte sauber, ordentlich und organisiert zu halten. Integrieren Sie in Texteditoren und Sie werden einen sehr reibungslosen Arbeitsablauf bei der Erstellung der Skripte haben.


Linux
  1. So installieren Sie Python unter Linux

  2. So installieren Sie Java unter Linux

  3. So installieren Sie den SSH-Dienst (Secure Shell) unter Kali Linux

  4. Wie man C-Programme unter Linux mit gdb debuggt

  5. So installieren Sie FFmpeg unter Linux

So installieren Sie die Go-Sprache unter Linux

So finden Sie Linux-Systemdetails mit inxi

So installieren und verwenden Sie die ZSH-Shell unter Linux

So installieren Sie GNOME unter Ubuntu Linux

So installieren Sie Linux Bash Shell unter Windows 10

So installieren und verwenden Sie Nu Shell unter Linux