Browser im Hostsystem von Windows Subsystem für Linux öffnen?
3933
janpio
Ich habe ein Ruby-Skript, das diese Zeile enthält:
system("open '#'")
html_pathist der Pfad zu einer lokalen .htmlDatei. Das Skript öffnet also einen Browser, in dem ich diese Datei normalerweise überprüfen und anzeigen kann.
Im Gegensatz zu einer MacOS-Umgebung funktioniert dies in bashWSL nicht. Beim Ausführen des Skripts passiert nichts, und wenn ich den openAufruf direkt in der Konsole ausführte, erhalte ich Folgendes:
sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ open Preview.html Couldn't get a file descriptor referring to the console
Ich habe schon recherchiert, dass openetwas in Ubuntu anders ist und ich verwenden seeoder xdg-openeine Datei öffnen soll.
Leider funktionieren diese auch nicht in der WSL:
sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ see ./Preview.html Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /us r/bin/see line 528. Couldn't find a suitable web browser! Set the BROWSER environment variable to your desired browser. Warning: program returned non-zero exit code #1
und
sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ xdg-open ./Preview.html Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /us r/bin/run-mailcap line 528. Couldn't find a suitable web browser! Set the BROWSER environment variable to your desired browser. Warning: program returned non-zero exit code #1 /usr/bin/xdg-open: 771: /usr/bin/xdg-open: www-browser: not found /usr/bin/xdg-open: 771: /usr/bin/xdg-open: links2: not found /usr/bin/xdg-open: 771: /usr/bin/xdg-open: elinks: not found /usr/bin/xdg-open: 771: /usr/bin/xdg-open: links: not found /usr/bin/xdg-open: 771: /usr/bin/xdg-open: lynx: not found /usr/bin/xdg-open: 771: /usr/bin/xdg-open: w3m: not found xdg-open: no method available for opening './Preview.html'
Wenn man darüber nachdenkt, macht das Sinn: In der WSL ist kein Browser verfügbar.
Kann ich diese BROWSERVariable irgendwie so einstellen, dass sie seeinnerhalb bashder WSL funktioniert ?
Bonusfrage: Wenn ja, wie kann ich das Ruby-Skript funktionieren lassen, ohne den Code zu ändern? Es ist eine externe Abhängigkeit: /
(vorausgesetzt, Sie möchten Firefox verwenden und installiert haben C:\Program Files\Firefox\firefox.exe)
Wenn Sie dies dauerhaft wünschen, können Sie der Datei die obige Zeile hinzufügen ~/.bashrc.
4
Elizabeth Hou
Aus irgendeinem Grund kann WSL den Windows-Datei-Explorer sehen. Wenn Sie tun:
explorer.exe Preview.html
In der Konsole sollte es im Standard-Windows-Webbrowser geöffnet werden.
2
Yehonathan Sharvit
Wenn Sie die beiden obigen Antworten kombinieren, besteht die einfachste Lösung darin, BROWSER auf Windows-Dateiexplorer zu setzen, um den Standard-Windows-Webbrowser zu verwenden