Erstellen und Ausführen von Bash-Shell-Skripten unter Windows 10

Mit der Einführung der Bash-Shell von Windows 10 können Sie jetzt Bash-Shell-Skripte unter Windows 10 erstellen und ausführen. Sie können Bash-Befehle auch in eine Windows-Batchdatei oder ein PowerShell-Skript integrieren.

Selbst wenn Sie wissen, was Sie tun, ist dies nicht unbedingt so einfach, wie es scheint. Windows und UNIX verwenden unterschiedliche Zeilenendezeichen, und auf das Windows-Dateisystem kann an einer anderen Stelle in der Bash-Umgebung zugegriffen werden.

So schreiben Sie ein Bash-Skript unter Windows 10

VERBINDUNG: So installieren und verwenden Sie die Linux Bash Shell unter Windows 10

Beachten Sie beim Schreiben von Shell-Skripten unter Windows, dass Windows- und UNIX-ähnliche Systeme wie Linux in Textdateien in Shell-Skripten unterschiedliche Zeilenendezeichen verwenden.

Mit anderen Worten bedeutet dies, dass Sie nicht einfach ein Shell-Skript in Notepad schreiben können. Speichern Sie die Datei im Editor und sie wird von Bash nicht richtig interpretiert. Sie können jedoch erweiterte Texteditoren verwenden. Mit Notepad ++ können Sie beispielsweise eine Datei mit UNIX-Zeilenendezeichen versehen, indem Sie auf Bearbeiten> EOL-Konvertierung> UNIX / OSX-Format klicken.

Es ist jedoch besser, das Shell-Skript nur in der Bash-Umgebung selbst zu schreiben. Die Ubuntu-basierte Bash-Umgebung enthält sowohl den vi- als auch den nano-Texteditor. Der vi-Editor ist leistungsfähiger, aber wenn Sie ihn noch nie zuvor verwendet haben, möchten Sie möglicherweise mit nano beginnen. Es ist einfacher zu bedienen, wenn Sie neu sind.

Um beispielsweise ein Bash-Skript in Nano zu erstellen, führen Sie den folgenden Befehl in Bash aus:

nano ~ / myscript.sh

Dies würde den Nano-Texteditor öffnen, der auf eine Datei mit dem Namen "myscript.sh" im Home-Verzeichnis Ihres Benutzerkontos verweist. (Das Zeichen "~" steht für Ihr Home-Verzeichnis. Der vollständige Pfad lautet also /home/username/myscript.sh.)

Starten Sie Ihr Shell-Skript mit der Zeile:

#! / bin / bash

VERBINDUNG: Der Leitfaden für Anfänger zum Shell-Scripting: Die Grundlagen

Geben Sie die Befehle ein, die Sie ausführen möchten, und zwar jeweils in einer eigenen Zeile. Das Skript führt jeden Befehl nacheinander aus. Fügen Sie vor einer Zeile ein "#" - Zeichen ein, um es als "Kommentar" zu behandeln. Dies hilft Ihnen und anderen Personen, das Skript zu verstehen, wird jedoch nicht als Befehl ausgeführt. Weitere Informationen zu fortgeschrittenen Tricks finden Sie in einer ausführlicheren Anleitung zu Bash-Skripten unter Linux. Die gleichen Techniken funktionieren in Bash unter Ubuntu unter Windows.

Beachten Sie, dass Windows-Programme nicht in der Bash-Umgebung ausgeführt werden können. Sie sind auf Linux-Terminalbefehle und -Dienstprogramme beschränkt, genau wie Sie es auf einem typischen Linux-System tun würden.

Verwenden wir zum Beispiel hier ein einfaches Skript "Hallo Welt" als Beispiel:

#! / bin / bash # setze die STRING Variable STRING = "Hallo Welt!" # Drucken Sie den Inhalt der Variablen auf dem Bildschirm aus. Echo $ STRING

Wenn Sie den Nano-Texteditor verwenden, können Sie die Datei speichern, indem Sie Strg + O und dann die Eingabetaste drücken. Schließen Sie den Editor, indem Sie Strg + X drücken.

Machen Sie das Skript ausführbar und führen Sie es dann aus

Sie möchten wahrscheinlich, dass das Skript ausführbar wird, damit Sie es einfacher ausführen können. Unter Linux bedeutet dies, dass Sie der Skriptdatei die ausführbare Berechtigung erteilen müssen. Führen Sie dazu den folgenden Befehl im Terminal aus und zeigen Sie auf Ihr Skript:

chmod + x ~ / myscript.sh

Um das Skript auszuführen, können Sie es jetzt einfach im Terminal ausführen, indem Sie seinen Pfad eingeben. Wenn Sie das Skript in Zukunft starten möchten, öffnen Sie einfach die Bash-Shell und geben Sie den Pfad zum Skript ein.

~ / myscript.sh

(Wenn sich das Skript im aktuellen Verzeichnis befindet, können Sie es mit ./myscript.sh ausführen.)

So arbeiten Sie mit Windows-Dateien in einem Bash-Skript

VERBINDUNG: So greifen Sie auf Ihre Ubuntu-Bash-Dateien in Windows (und Ihr Windows-Systemlaufwerk in Bash) zu

Um auf Windows-Dateien im Skript zuzugreifen, müssen Sie ihren Pfad unter / mnt / c angeben, nicht ihren Windows-Pfad. Wenn Sie beispielsweise die Datei C: \ Users \ Bob \ Downloads \ test.txt angeben möchten, müssen Sie den Pfad /mnt/c/Users/Bob/Downloads/test.txt angeben. Weitere Informationen finden Sie in unserem Handbuch zu Speicherorten in der Bash-Shell von Windows 10.

So integrieren Sie Bash-Befehle in ein Batch- oder PowerShell-Skript

VERBINDUNG: So legen Sie Ihre Standard-Linux-Distribution unter Windows 10 fest

Wenn Sie über eine vorhandene Batchdatei oder ein PowerShell-Skript verfügen, in das Sie Befehle einbinden möchten, können Sie Bash-Befehle direkt mit dem bash -cBefehl ausführen .

Um beispielsweise einen Linux-Befehl in einer Eingabeaufforderung oder einem PowerShell-Fenster auszuführen, können Sie den folgenden Befehl ausführen:

bash -c "Befehl"

Mit diesem Trick können Sie Bash-Befehle zu Batch-Dateien oder PowerShell-Skripten hinzufügen. Das Bash-Shell-Fenster wird angezeigt, wenn ein Bash-Befehl ausgeführt wird.

Update : Wenn Sie mehrere Linux-Umgebungen installiert haben, können Sie mit dem Befehl wslconfig die Standard-Linux-Umgebung auswählen, die beim Ausführen des bash -cBefehls verwendet wird.

Um eine Verknüpfung zu einem Bash-Skript in Windows zu erstellen, erstellen Sie einfach eine Verknüpfung wie gewohnt. Verwenden Sie für das Ziel der Verknüpfung den bash -coben beschriebenen Befehl und zeigen Sie auf das von Ihnen erstellte Bash-Skript.

Beispielsweise würden Sie eine Verknüpfung auf " bash -c "~/myscript.sh"" zeigen, um das obige Beispielskript auszuführen. Sie können diesen Befehl auch einfach über eine Eingabeaufforderung oder ein PowerShell-Fenster ausführen.