Dans un script bash, je dois lancer le navigateur Web de l'utilisateur. Il semble y avoir plusieurs façons de le faire:
$BROWSER
xdg-open
gnome-open
sur GNOMEwww-browser
x-www-browser
Existe-t-il une manière plus standard que les autres de faire cela qui fonctionnerait sur la plupart des plateformes, ou devrais-je simplement utiliser quelque chose comme ceci:
#/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
xdg-open
est standardisé et devrait être disponible dans la plupart des distributions.
Autrement:
eval
est diabolique, ne l'utilisez pas.Voici un exemple:
#!/bin/bash
if which xdg-open > /dev/null
then
xdg-open URL
Elif which gnome-open > /dev/null
then
gnome-open URL
fi
Peut-être que cette version est légèrement meilleure (toujours non testée):
#!/bin/bash
URL=$1
[[ -x $BROWSER ]] && exec "$BROWSER" "$URL"
path=$(which xdg-open || which gnome-open) && exec "$path" "$URL"
echo "Can't find browser"
python -mwebbrowser http://example.com
fonctionne sur de nombreuses plateformes
$ open -a /Applications/Safari.app http://www.google.com
ou
$ open -a /Applications/Firefox.app http://www.google.com
ou simplement...
$ open some_url
Vous pouvez utiliser les éléments suivants:
x-www-browser
Il n'exécutera pas l'utilisateur mais plutôt le navigateur X par défaut du système.
Voir: ce fil.