Ich habe ein Ruby-Skript, das diese Zeile enthält:
system("open '#{html_path}'")
html_path
ist der Pfad zu einer lokalen .html
Datei. Das Skript öffnet also einen Browser, in dem ich diese Datei normalerweise einsehen und anzeigen kann.
Im Gegensatz zu einer MacOS-Umgebung funktioniert dies in bash
der WSL nicht. Beim Ausführen des Skripts passiert nichts , und wenn ich den open
Aufruf direkt in der Konsole ausführe, 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 bereits untersucht, dass open
Ubuntu etwas anderes macht und ich sollte see
oder xdg-open
zum Öffnen einer Datei verwenden.
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'
Das macht Sinn: In der WSL ist kein Browser verfügbar.
Kann ich diese BROWSER
Variable irgendwie so einstellen , dass sie see
in bash
der WSL funktioniert ?
Bonusfrage: Wenn ja, wie kann ich das Ruby-Skript zum Laufen bringen, ohne den Code zu ändern? Es ist eine externe Abhängigkeit: /
xdg-open https://www.google.com
meinen Firefox für Windows aufrufe, öffne ich zwei Tabs mit Google, während es beim Ausführen nur ein Tab istexplorer.exe https://www.google.com
. Irgendeine Idee, wie man über xdg-open nur einen Tab bekommt?Installiere WSLU und benutze 'BROWSER = wslview'
quelle