In einem Bash-Skript muss ich den Benutzer-Webbrowser starten. Es scheint viele Möglichkeiten zu geben, dies zu tun:
$BROWSER
xdg-open
gnome-open
auf GNOMEwww-browser
x-www-browser
- ...
Gibt es eine Standardmethode als die anderen, die auf den meisten Plattformen funktioniert, oder sollte ich einfach so etwas tun:
#/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
quelle
quelle
?
oder&
dort zu finden, der zitiert werden muss.eval
$BROWSER http://wwww.google.com
sensible-browser
.Antworten:
xdg-open
ist standardisiert und sollte in den meisten Distributionen verfügbar sein.Andernfalls:
eval
ist böse, benutze es nicht.Hier ist ein Beispiel:
Vielleicht ist diese Version etwas besser (noch nicht getestet):
quelle
-s
Option verwendet, aber das scheint unter Linux nicht zu existieren.)which
Binärdateien zu erkennen ?funktioniert auf vielen Plattformen
quelle
webbrowser
Modul erwähnt haben!python -m webbrowser file:///usr/share/doc/python/FAQ.html
OSX:
oder
oder einfach...
quelle
Sie könnten Folgendes verwenden:
Der Benutzer wird nicht ausgeführt, sondern der Standard-X-Browser des Systems.
Siehe: dieser Thread.
quelle
x-www-browser <url>
macht den Job sehr gut!Nehmen Sie die anderen Antworten und erstellen Sie eine Version, die für alle gängigen Betriebssysteme funktioniert, und überprüfen Sie, ob eine URL als Laufzeitvariable übergeben wird:
quelle
Dies trifft möglicherweise nicht genau auf das zu, was Sie tun möchten, aber es gibt eine wirklich einfache Möglichkeit, einen Server mit dem
http-server
npm-Paket zu erstellen und zu starten .Einmal installiert (nur
npm install http-server -g
) können Sie setzenhttp-server -o
In Ihrem Bash-Skript wird ein Server aus dem aktuellen Verzeichnis gestartet und ein Browser für diese Seite geöffnet.
quelle
npm
installiert sein +http-server
Paket + startet einen nicht benötigten Webserver ...open
, aber es ist immer noch übertrieben