En un script bash, necesito iniciar el navegador web del usuario. Parece que hay muchas formas de hacer esto:
$BROWSERxdg-opengnome-openen GNOMEwww-browserx-www-browser- ...
¿Existe una forma más estándar que las demás de hacer esto que funcione en la mayoría de las plataformas, o debería elegir algo como esto?
#/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
fuente
fuente

?o&que deba ser citado.eval(es un riesgo de seguridad):$BROWSER http://wwww.google.comsensible-browser.Respuestas:
xdg-openestá estandarizado y debería estar disponible en la mayoría de las distribuciones.De otra manera:
evales malvado, no lo uses.Aquí hay un ejemplo:
Quizás esta versión sea un poco mejor (aún no probada):
fuente
-sopción, pero eso no parece existir en Linux.)whichpara detectar binarios ?funciona en muchas plataformas
fuente
webbrowsermódulo!python -m webbrowser file:///usr/share/doc/python/FAQ.htmlOSX:
o
o simplemente...
fuente
Puedes usar lo siguiente:
No ejecutará el navegador X predeterminado del usuario, sino el del sistema.
Ver: este hilo.
fuente
x-www-browser <url>hace el trabajo muy bien!Tomando las otras respuestas y creando una versión que funcione para todos los sistemas operativos principales, además de verificar para asegurarse de que se pase una URL como una variable de tiempo de ejecución:
fuente
Es posible que esto no se aplique exactamente a lo que desea hacer, pero existe una manera realmente fácil de crear e iniciar un servidor utilizando el
http-serverpaquete npm .Una vez instalado (solo
npm install http-server -g) puedes ponerhttp-server -oen su script bash y lanzará un servidor desde el directorio actual y abrirá un navegador a esa página.
fuente
npmser instalado +http-serverpaquete + inicia un servidor web innecesario ...open, pero aún es excesivo