Was ist die Bash-Dateierweiterung?
Ich geschrieben habe ein bash-Skript in einem text-editor, welche extension Speichere ich mein script so wie es laufen kann, als ein bash-script im terminal. Ich habe ein Skript erstellt, dass sollte in der Theorie starten Sie einen ssh-server. Ich Frage mich, wie man das script auszuführen, sobald ich drauf klicke. Ich arbeite mit os x 10.9.5.
InformationsquelleAutor der Frage Amedeo | 2015-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meinungsverschiedenheiten mit den anderen Antworten, es ist eine gängige Konvention zu verwenden
.sh
Verlängerung für shell-Skripte-aber es ist nicht eine nützliche Konvention. Es ist besser nicht zu verwenden, eine Erweiterung auf alle. Der Vorteil des in der Lage seins erzählen, dassfoo.sh
ist ein shell-script, weil sein name ist minimal, und Sie zahlen für Sie mit einem Verlust an Flexibilität.Machen ein bash-script ausführbar ist, muss es eine shebang in der obersten Zeile:
und verwenden Sie die
chmod +x
Befehl, so dass das system erkennt es als eine ausführbare Datei. Es muss dann installiert werden, die in einem der Verzeichnisse, die in Ihrem$PATH
. Wenn das Skript aufgerufen wirdfoo
Sie können dann führen Sie es von einem shell-prompt durch Eingabe vonfoo
. Oder wenn es im aktuellen Verzeichnis (Häufig für temporäre Skripte), können Sie geben Sie./foo
.Weder die Schale noch das Betriebssystem zahlt keine Aufmerksamkeit auf die Erweiterung Teil des Dateinamens. Es ist nur ein Teil des namens. Und durch nicht gibt es eine spezielle Erweiterung, stellen Sie sicher, dass jemand (entweder ein Benutzer oder ein script), das es nicht zu kümmern, wie es umgesetzt wurde, ob es ein shell-script (sh, bash, csh, oder was auch immer), Perl, Python oder Awk-Skript oder eine ausführbare Binärdatei. Das system ist speziell so konzipiert, dass entweder eine interpretierte Skript oder eine ausführbare Binärdatei aufgerufen werden kann, ohne zu wissen, oder Pflege, wie es implementiert ist.
UNIX-wie Systeme begann mit einer rein textuellen Befehlszeilen-Schnittstelle. GUIs wie KDE und Gnome wurden erst später Hinzugefügt. In einem GUI-desktop-system, können Sie in der Regel ein Programm ausführen (auch, ob es ein Skript oder eine ausführbare Binärdatei), zum Beispiel durch Doppelklick auf ein Symbol, das auf Sie verweist. In der Regel verwirft dies jeder Ausgabe das Programm print und lässt Sie nicht pass-Befehlszeilen-Argumente; es ist viel weniger flexibel, als wenn man es von einem shell-prompt. Aber für einige Programme (hauptsächlich GUI-clients) kann es bequemer sein.
Shell-scripting wird am besten gelernt, von der Kommandozeile aus, nicht von einem GUI.
(Einige tools tun achten Sie auf die Dateiendung. Zum Beispiel, Compiler verwenden in der Regel die Dateiendung zu bestimmen, in welcher Sprache der code geschrieben im:
.c
für C.cpp
für c++, etc. Dieses übereinkommen gilt nicht für ausführbare Dateien.)Beachten Sie, dass UNIX (und UNIX-ähnliche Systeme) sind nicht Windows. MS Windows verwendet in der Regel eine Datei mit der Erweiterung zu bestimmen, wie öffnen/ausführen. Ausführbare Binärdateien müssen einen
.exe
Erweiterung. Wenn Sie eine UNIX-shell unter Windows installiert, können Sie Windows so konfigurieren, zu erkennen, eine.sh
Erweiterung als ein shell-Skript und verwenden Sie die shell, um es zu öffnen; Windows nicht über den#!
Konvention.InformationsquelleAutor der Antwort Keith Thompson
Brauchen Sie nicht jede Erweiterung (oder Sie wählen eine beliebige, aber
.sh
ist eine nützliche Konvention).Sollten Sie starten Sie Ihr Skript mit
#!/bin/bash
(die erste Zeile ist verständlich execve(2) syscall), und Sie sollten Ihre Datei ausführbar, indem Siechmod u+x
. also, wenn Ihr Skript ist in einer Datei$HOME/somedir/somescriptname.sh
geben Sie einmalin einem terminal. Sehen chmod(1) für den Befehl und chmod(2) für die syscall.
Es sei denn, Sie Tippen die ganze Datei Weg, Sie sollten die Datei in einem Verzeichnis erwähnt in Ihrem
PATH
(siehe environ(7) & execvp(3)), die können Sie dauerhaft in Ihrem~/.bashrc
wenn Sie Ihre login-shell istbash
)BTW, könnten Sie schreiben Ihr Skript in einer anderen Sprache, z.B. Python, indem Sie Sie starten mit
#!/usr/bin/python
oder in Ocaml, indem Sie Sie starten mit#!/usr/bin/ocaml
...Ausführung des Skript durch einen Doppelklick (auf was? Sie hat nicht gesagt!) ist ein desktop-Umgebung Problem und könnte den desktop bestimmten (möglicherweise anderen mit
Kde, Mate, Gnome, .... oder IceWM oder RatPoison). Vielleicht Lesen EWMH Skillung helfen könnten, Sie bekommen ein besseres Bild.
Vielleicht macht Ihr Skript ausführbar mit
chmod
könnte es anklickbar auf dem desktop (offensichtlich Quarz auf MacOSX). Aber dann sollte man wohl machen, es gibt einige visuelle feedback.Und mehrere Rechner haben kein desktop, einschließlich Ihrer eigenen, wenn Sie Zugriff aus der Ferne mit ssh.
Ich glaube nicht, dass es eine gute Idee, um Ihre shell-Skript, indem Sie auf klicken. Sie wahrscheinlich wollen, um der Lage sein, um Argumente, um Ihre shell-script (und wie würden Sie das tun, indem Sie auf?), und Sie kümmern sollte, seinen Ausgang. Wenn Sie können, schreiben Sie ein shell-Skript, können Sie eine interaktive shell in einem terminal. Dass es die beste und natürlichste Weg, um ein Skript verwenden. Gute interaktive shells (z.B. zsh oder Fisch oder vielleicht eine aktuelle
bash
) haben lecker und konfigurierbare Autovervollständigung Einrichtungen und Sie müssen nicht zu viel geben (weitere Informationen zum verwenden der tab - Taste auf Ihrer Tastatur). Auch, Skripten und Programme sind oft Teile von zusammengesetzten Befehle (pipelines, etc...).PS. Ich bin mit Unix seit 1986, und Linux seit 1993. Ich habe nie begonnen, meine eigenen Programme oder Skripte, indem Sie auf klicken. Warum sollte ich?
InformationsquelleAutor der Antwort Basile Starynkevitch
nur
.sh
.Führen Sie das Skript wie dieses:
EDIT: Wie anubhava gesagt, die Erweiterung ist nicht wirklich wichtig. Aber aus organisatorischen Gründen, ist es immer noch empfohlen, die Verwendung von Erweiterungen.
InformationsquelleAutor der Antwort Marc Anton Dahmen
Ich weiß, das ist ziemlich alt jetzt aber ich glaube, das ergänzt, was die Frage war für Fragen.
Wenn Ihr auf einem mac, und Sie wollen in der Lage sein, ein Skript ausführen, indem Sie darauf doppelklicken müssen Sie mit dem
.command
Erweiterung. Auch die gleiche wie vor machen die Datei ausführbar mitchmod -x
.Wie zuvor festgestellt wurde, ist dies nicht wirklich sinnvoll, dass tbh.
InformationsquelleAutor der Antwort w_jay