Wenn Sie mit den anderen Antworten nicht einverstanden sind, gibt es eine übliche Konvention, eine .sh
Erweiterung für Shell-Skripte zu verwenden - aber es ist keine nützliche Konvention. Es ist besser, überhaupt keine Erweiterung zu verwenden. Der Vorteil, foo.sh
aufgrund seines Namens feststellen zu können, dass es sich um ein Shell-Skript handelt, ist minimal, und Sie zahlen dafür mit einem Verlust an Flexibilität.
Um ein Bash-Skript ausführbar zu machen, muss oben eine Shebang- Zeile stehen:
#!/bin/bash
und verwenden Sie den chmod +x
Befehl, damit das System ihn als ausführbare Datei erkennt. Es muss dann in einem der in Ihrem Verzeichnis aufgeführten Verzeichnisse installiert werden $PATH
. Wenn das Skript aufgerufen wird foo
, können Sie es an einer Shell-Eingabeaufforderung ausführen, indem Sie Folgendes eingeben foo
. Oder wenn es sich im aktuellen Verzeichnis befindet (häufig für temporäre Skripte), können Sie eingeben ./foo
.
Weder die Shell noch das Betriebssystem achten auf den Erweiterungsteil des Dateinamens. Es ist nur ein Teil des Namens. Und nicht eine spezielle Erweiterung zu geben, stellen Sie sicher , dass jemand (entweder ein Benutzer oder ein anderes Skript) , dass Anwendungen nicht zu kümmern hat , wie es durchgeführt wurde, ob es sich um ein Shell - Skript (sh, bash, csh, oder was auch immer) , ein Perl-, Python- oder Awk-Skript oder eine ausführbare Binärdatei. Das System ist speziell so konzipiert, dass entweder ein interpretiertes Skript oder eine ausführbare Binärdatei aufgerufen werden kann, ohne zu wissen oder sich darum zu kümmern, wie es implementiert ist.
UNIX-ähnliche Systeme begannen mit einer rein textuellen Befehlszeilenschnittstelle. GUIs wie KDE und Gnome wurden später hinzugefügt. In einem GUI-Desktop-System können Sie normalerweise ein Programm ausführen (auch hier handelt es sich um ein Skript oder eine ausführbare Binärdatei), indem Sie beispielsweise auf ein Symbol doppelklicken, das darauf verweist. In der Regel werden dadurch alle Ausgaben verworfen, die das Programm möglicherweise druckt, und Sie können keine Befehlszeilenargumente übergeben. Es ist viel weniger flexibel als das Ausführen über eine Shell-Eingabeaufforderung. Für einige Programme (meistens GUI-Clients) kann dies jedoch bequemer sein.
Shell-Skripte werden am besten über die Befehlszeile und nicht über eine GUI gelernt.
(Einige Werkzeuge tun achten Sie auf Dateiendungen zum Beispiel Compiler normalerweise die Erweiterung verwenden , um die Sprache der Code zu bestimmen , ist geschrieben in. .c
Für C .cpp
. Für C ++, usw. Diese Konvention nicht auf ausführbare Dateien gilt)
Beachten Sie, dass UNIX (und UNIX-ähnliche Systeme) kein Windows sind. MS Windows verwendet im Allgemeinen die Dateierweiterung, um zu bestimmen, wie diese geöffnet / ausgeführt werden soll. Binäre ausführbare Dateien müssen eine .exe
Erweiterung haben. Wenn Sie eine UNIX-ähnliche Shell unter Windows installiert haben, können Sie Windows so konfigurieren, dass eine .sh
Erweiterung als Shell-Skript erkannt wird , und sie mithilfe der Shell öffnen. Windows hat die #!
Konvention nicht.
bash myscript