W skrypcie bash muszę uruchomić przeglądarkę internetową użytkownika. Wydaje się, że jest na to wiele sposobów:
$BROWSER
xdg-open
gnome-open
w GNOMEwww-browser
x-www-browser
- ...
Czy istnieje bardziej standardowy sposób na zrobienie tego niż inne, który działałby na większości platform, czy powinienem po prostu wybrać coś takiego:
#/usr/bin/env bash
if [ -n $BROWSER ]; then
$BROWSER 'http://wwww.google.com'
elif which xdg-open > /dev/null; then
xdg-open 'http://wwww.google.com'
elif which gnome-open > /dev/null; then
gnome-open 'http://wwww.google.com'
# elif bla bla bla...
else
echo "Could not detect the web browser to use."
fi
bash
shell
command-line
standards
standards-compliance
nicoulaj
źródło
źródło
?
lub&
tam, który należy zacytować.eval
(jest to zagrożenie bezpieczeństwa):$BROWSER http://wwww.google.com
sensible-browser
.Odpowiedzi:
xdg-open
jest znormalizowany i powinien być dostępny w większości dystrybucji.Inaczej:
eval
jest zły, nie używaj go.Oto przykład:
Może ta wersja jest nieco lepsza (wciąż nieprzetestowana):
źródło
-s
opcji, ale wydaje się, że ona nie istnieje w Linuksie.)which
do wykrywania plików binarnych ?działa na wielu platformach
źródło
webbrowser
module!python -m webbrowser file:///usr/share/doc/python/FAQ.html
OSX:
lub
lub po prostu...
źródło
Możesz użyć następujących:
Nie uruchomi użytkownika, ale raczej domyślną przeglądarkę X systemu.
Zobacz: ten wątek.
źródło
x-www-browser <url>
wykonuje swoją pracę bardzo dobrze!Biorąc inne odpowiedzi i tworząc wersję, która działa dla wszystkich głównych systemów operacyjnych, a także sprawdzając, czy adres URL jest przekazywany jako zmienna czasu wykonywania:
źródło
Może to nie dotyczyć dokładnie tego, co chcesz zrobić, ale istnieje naprawdę łatwy sposób na utworzenie i uruchomienie serwera przy użyciu
http-server
pakietu npm .Po zainstalowaniu (po prostu
npm install http-server -g
) możesz umieścićhttp-server -o
w skrypcie bash i uruchomi serwer z bieżącego katalogu i otworzy przeglądarkę tej strony.
źródło
npm
to zainstalowania +http-server
pakietu + uruchomienia niepotrzebnego serwera WWW ...open
, ale nadal jest przesadą