tutorial traduccion meaning comandos bash shell command-line standards standards-compliance

meaning - bash traduccion



¿Manera limpia de iniciar el navegador web desde el script de shell? (5)

En un script bash, necesito iniciar el navegador web del usuario. Parece que hay muchas formas de hacer esto:

  • $BROWSER
  • xdg-open
  • gnome-open en GNOME
  • www-browser
  • x-www-browser
  • ...

¿Hay alguna manera más estándar que los demás para hacer esto que funcionaría en la mayoría de las plataformas, o debería ir con 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


OSX:

$ open -a /Applications/Safari.app http://www.google.com

o

$ open -a /Applications/Firefox.app http://www.google.com

o simplemente...

$ open some_url


Es posible que esto no se aplique exactamente a lo que desea hacer, pero existe una manera muy sencilla de crear e iniciar un servidor utilizando el paquete http-server npm .

Una vez instalado (solo npm install http-server -g ) puedes poner

http-server -o

en su secuencia de comandos bash y se iniciará un servidor desde el directorio actual y abrir un navegador a esa página.


Puede usar lo siguiente:

x-www-browser

No ejecutará el navegador X predeterminado del usuario sino el del sistema.

Ver: este hilo.


xdg-open está estandarizado y debería estar disponible en la mayoría de las distribuciones.

De otra manera:

  1. eval es malo, no lo uses.
  2. Cita tus variables.
  3. Use los operadores de prueba correctos de la manera correcta.

Aquí hay un ejemplo:

#!/bin/bash if which xdg-open > /dev/null then xdg-open URL elif which gnome-open > /dev/null then gnome-open URL fi

Tal vez esta versión sea un poco mejor (aún no probada):

#!/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

funciona en muchas plataformas