У меня есть скрипт ruby, который содержит эту строку:
system("open '#{html_path}'")
html_path
- это путь к локальному файлу .html
. Таким образом, скрипт открывает браузер, где я обычно могу просматривать и просматривать этот файл.
В отличие от среды MacOS, это не работает в bash
из WSL. При запуске сценария ничего не происходит, и когда я выполняю вызов open
в консоли напрямую, я получаю следующее:
sujan@LenovoX1:/mnt/c/Users/Jan/Documents/foo$ open Preview.html
Couldn't get a file descriptor referring to the console
Я уже исследовал, что open
делает что-то другое в Ubuntu, и я должен использовать see
или xdg-open
чтобы открыть файл.
К сожалению, они также не работают в 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
а также
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'
Размышляя об этом, это имеет смысл: в WSL нет браузера.
Можно ли как-то установить эту переменную BROWSER
чтобы see
работает внутри bash
WSL?
Дополнительный вопрос: если да, как я могу заставить скрипт ruby работать без изменения этого кода? Это внешняя зависимость:/