HOWTO · Bash
Öffnen Sie die HTML-Datei mit Bash
In diesem Tutorial erfahren Sie, wie Sie eine vorhandene lokale HTML-Datei mit Bash unter macOS und Linux im Standardbrowser oder in einem ausgewählten Browser öffnen.
Auf dieser Seite
Um eine vorhandene lokale HTML-Datei aus Bash zu öffnen, verwenden Sie den Starter für Ihr Betriebssystem: macOS stellt open bereit, viele Linux-Desktopumgebungen xdg-open. Beide übergeben die Datei an die zugeordnete Anwendung, in der Regel den Standardbrowser. Diese Befehle öffnen eine lokale Datei; sie starten keinen Webserver und veröffentlichen die Seite nicht.
Eine HTML-Datei im Standardbrowser öffnen
Wechseln Sie zunächst in das Verzeichnis mit der Seite, oder geben Sie direkt ihren Pfad an. Unter macOS öffnet open ./index.html eine Datei im aktuellen Verzeichnis. Unter Linux erreichen Sie dasselbe Verhalten für die Standardanwendung mit xdg-open ./index.html. Ersetzen Sie index.html durch den Namen Ihrer vorhandenen Datei. Liegt die Datei in einem anderen Verzeichnis, geben Sie einen absoluten Pfad wie /home/alex/site/index.html oder einen relativ zum aktuellen Verzeichnis angegebenen Pfad wie ../site/index.html an.
Der Starter übergibt den Pfad an die Desktopumgebung und gibt die Kontrolle an die Shell zurück; den gerenderten Seiteninhalt gibt er nicht im Terminal aus. Die HTML-Datei wird im Browser angezeigt. Welche Anwendung genau geöffnet wird, hängt von der Dateizuordnung auf diesem Computer ab.
Eine HTML-Datei unter macOS öffnen
Unter macOS verwendet der integrierte Befehl open die Anwendung, die dem Dateityp zugeordnet ist. Führen Sie open ./index.html im Verzeichnis der Datei aus oder geben Sie den vollständigen Pfad an, zum Beispiel open "$HOME/Sites/demo/index.html". Durch Anführungszeichen werden Leerzeichen und andere Shell-Zeichen davor geschützt, als Trennzeichen interpretiert zu werden. Sie können auch open eingeben und die Datei aus dem Finder in das Terminalfenster ziehen. Dadurch wird ihr Pfad eingefügt; drücken Sie anschließend die Eingabetaste.
Um eine bestimmte installierte Anwendung zu verwenden, setzen Sie open -a gefolgt vom Anwendungsnamen und Dateipfad ein. Beispielsweise fordert open -a "Google Chrome" ./index.html macOS auf, die Seite in Google Chrome zu öffnen. Auf dieselbe Weise können Sie den angezeigten Namen eines installierten Browsers verwenden, etwa Firefox. Diese Syntax gilt für macOS; open -a ist nicht der unten gezeigte Linux-Befehl.
Eine HTML-Datei unter Linux öffnen
In einer grafischen Linux-Desktop-Sitzung übergibt xdg-open ./index.html die Seite an die Standardanwendung für HTML-Dateien. Geben Sie bei Bedarf einen absoluten oder relativen Pfad an und setzen Sie ihn bei Leerzeichen in Anführungszeichen: xdg-open "$HOME/sites/my demo/index.html".
xdg-open wird häufig mit Paketen für die Desktopintegration bereitgestellt, ist aber nicht in jeder Linux-Umgebung garantiert installiert oder nutzbar. Auf einem reinen Textserver, in einem Container oder in einer entfernten Shell ohne grafische Sitzung steht möglicherweise kein Browser zum Starten zur Verfügung. Die Installation von Homebrew unter macOS macht xdg-open nicht zum standardmäßigen macOS-Starter. Verwenden Sie dort open.
Einen Browser auswählen und mehrere Dateien öffnen
Unter macOS fordert open -a "Google Chrome" ./one.html ./two.html dazu auf, beide Dateien in Google Chrome zu öffnen. Ersetzen Sie den Anwendungsnamen bei Bedarf durch den Namen eines installierten Browsers. Dieselbe Form mit open -a funktioniert mit einem oder mehreren Dateipfaden.
Unter Linux ist xdg-open dafür vorgesehen, eine URL oder Datei mit der Standard-Desktopanwendung zu öffnen. Eine portable Option, mit der sich ein Browser anhand seines angezeigten Namens auswählen lässt, bietet der Befehl nicht. Wenn Sie einen bestimmten Browser benötigen, verwenden Sie dessen eigenes Befehlszeilenprogramm, sofern es installiert und über Ihren PATH verfügbar ist. Name und Optionen unterscheiden sich je nach Distribution und Browser. Auch browserspezifische Modi wie privates Surfen verwenden die Optionen des jeweiligen Browsers und sind daher nicht mit Optionen von open oder xdg-open austauschbar.
Pfade und Verfügbarkeit der Befehle prüfen
Ein relativer Pfad wird vom aktuellen Arbeitsverzeichnis der Shell aus ausgewertet, nicht vom Verzeichnis des Artikels oder des Browsers. Führen Sie pwd aus, um das aktuelle Verzeichnis anzuzeigen. Mit ls können Sie die darin enthaltenen Dateien prüfen; alternativ wechseln Sie mit cd in das passende Verzeichnis und übergeben dann den HTML-Dateinamen an den Starter Ihres Betriebssystems. Enthält der Pfad Leerzeichen, setzen Sie ihn vollständig in Anführungszeichen. Vergewissern Sie sich, dass die Datei vorhanden ist und Schreibweise sowie Groß- und Kleinschreibung dem angegebenen Pfad entsprechen.
Um die HTML-Datei zu prüfen, die Sie öffnen möchten, testen Sie direkt den angegebenen Pfad. Setzen Sie target auf den Pfad, den Sie an open oder xdg-open übergeben wollen, und setzen Sie ihn in Anführungszeichen, damit Leerzeichen Teil des Dateinamens bleiben. Das Beispiel meldet eindeutig, ob die Datei vorhanden ist, und endet in beiden Fällen erfolgreich. Beim bereitgestellten Lauf fehlte der Standardpfad; daher wurde HTML file not found: ./index.html ausgegeben. Diese Beschriftung im unveränderten Beispiel bleibt Englisch.
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
target=${1:-./index.html}
if [[ -f "$target" ]]; then
printf 'Found HTML file: %s\n' "$target"
else
printf 'HTML file not found: %s\n' "$target"
fi
Speichern Sie die Prüfung unter check-html-path.sh und führen Sie sie beispielsweise mit bash check-html-path.sh "$HOME/Sites/demo page/index.html" aus. Der an das Skript übergebene Pfad ist der Pfad, der geprüft wird; eine separate temporäre Datei kann die Prüfung nicht erfolgreich machen. Nach der Ausgabe Found HTML file verwenden Sie denselben Pfad mit dem Starter Ihres Betriebssystems. Diese Beschriftung bleibt im unveränderten Beispiel Englisch. Die Prüfung bestätigt, dass eine reguläre Datei vorhanden ist; sie validiert weder den HTML-Inhalt noch startet sie einen Browser.
Diese separate Shell-Prüfung testet Bash’ Dateiprüfung an einer temporären Datei; das HTML-Ziel wird dabei nicht geprüft:
file=$(mktemp)
trap 'rm -f "$file"' EXIT
[[ -f "$file" ]]
Die separate Prüfung wurde erfolgreich abgeschlossen und gab nichts auf stdout aus.
Wenn Bash meldet, dass open oder xdg-open nicht gefunden wurde, prüfen Sie, ob Sie den Befehl für Ihr Betriebssystem verwenden. open ist für macOS vorgesehen; unter Linux fehlt möglicherweise das Desktopintegrationspaket, das xdg-open bereitstellt. Wird der Starter ausgeführt, aber kein Browser angezeigt, vergewissern Sie sich, dass eine grafische Desktop-Sitzung verfügbar und eine Anwendung HTML-Dateien zugeordnet ist. Prüfen Sie bei einem ausgewählten Browser außerdem, ob er installiert ist und ob der Befehls- oder Anwendungsname stimmt.
Eine lokale Vorschau eignet sich, um eine Seite auf dem eigenen Computer zu prüfen. Ist die Seite auf Webserververhalten, Routen oder Ressourcen angewiesen, die HTTP erfordern, starten Sie separat einen lokalen Entwicklungsserver und öffnen Sie dessen URL. open und xdg-open übergeben lediglich eine Datei oder URL an eine Desktopanwendung.