Czysty sposób na uruchomienie przeglądarki internetowej ze skryptu shell?
W skrypcie bash, muszę uruchomić przeglądarkę internetową użytkownika. Wydaje się, że można to zrobić na wiele sposobów:
$BROWSER
xdg-open
-
gnome-open
na GNOME www-browser
x-www-browser
- ...
Czy istnieje bardziej standardowy sposób, aby to zrobić, który działa na większości platform, czy powinienem po prostu pójść z czymś takim:
#/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
5 answers
xdg-open
jest znormalizowany i powinien być dostępny w większości dystrybucji.
Inaczej:
- Jest złe, nie używaj go.
- Cytuj swoje zmienne.
- użyj odpowiednich operatorów testowych we właściwy sposób.
Oto przykład:
#!/bin/bash
if which xdg-open > /dev/null
then
xdg-open URL
elif which gnome-open > /dev/null
then
gnome-open URL
fi
Może ta wersja jest nieco lepsza (wciąż niesprawdzona):
#!/bin/bash
URL=$1
[[ -x $BROWSER ]] && exec "$BROWSER" "$URL"
path=$(which xdg-open || which gnome-open) && exec "$path" "$URL"
echo "Can't find browser"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-26 17:48:52
python -mwebbrowser http://example.com
Działa na wielu platformach
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-26 17:11:45
OSX:
$ open -a /Applications/Safari.app http://www.google.com
Lub
$ open -a /Applications/Firefox.app http://www.google.com
Lub po prostu...
$ open some_url
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-06 19:20:36
Możesz użyć:
x-www-browser
To nie uruchomi użytkownika, ale raczej domyślną przeglądarkę X systemu.
Zobacz: Ten wątek.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-26 16:38:47
Może to nie dotyczyć dokładnie tego, co chcesz zrobić, ale istnieje naprawdę łatwy sposób na utworzenie i uruchomienie serwera za pomocą http-server
pakiet npm .
Po zainstalowaniu (tylko 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ę do tej strony.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-15 18:21:52