Uso bastante el comando xdg-open en mi terminal Ubuntu Linux. Sin embargo, dos cosas me molestan:
¿Es posible suprimir los mensajes de error?
¿Es posible hacer que el comando se complete siempre? (Es decir, no seguir corriendo, por lo que tengo otra "línea nueva" en mi terminal).
Me doy cuenta de que 2 puede no ser posible, debido a la forma en que funciona el programa, pero imagino que 1 sí lo es.
El primero es fácil. Sólo
alias xdg-open="xdg-open 2>/dev/null"Si lo quiere de forma permanente, simplemente agregue esa línea al archivo ~/.bashrc.
Sin embargo, te recomiendo que lo pienses dos veces si quieres volverte ciego a los errores.
El segundo es bastante confuso para mí. xdg-open no debería ser interactivo. En mi computadora (Debian sid) xdg-open ejecuta el comando y finaliza, incluso si el comando en sí no ha finalizado (es decir, no ha cerrado la aplicación abierta para la URL). Creo que este debería ser el comportamiento de xdg-open en cualquier plataforma (se supone que funciona exactamente de la misma manera en cualquier sistema XDG, ese es su propósito).
De todos modos, para cualquier comando que lances en un shell, si quieres que no sea interactivo, es decir, que permita ingresar comandos aunque el anterior no haya terminado, simplemente agrega "&" al final del mismo. . Ejemplo:
# prompt is not shown until you close the calculator $ gnome-calculator # prompt is shown right after opening calculator and you can # work on the shell even if you don't close it $ gnome-calculator &Tal vez llegue tarde a la respuesta, pero tengo exactamente el mismo problema que tú tienes/tuviste.
Traté de iniciar una URL con xdg-open, mi navegador predeterminado es firefox y no xdg-open pero firefox comenzó con un error:
[user@user-pc ~]$ xdg-open https://www.google.de # the page opens fine, but firefox had an error [user@user-pc ~]$ (process:3783): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed # needed to press enter herexdg-open cerró bien pero el error de firefox permaneció y necesito presionar enter para que bash se mueva.
Para resolver este problema, llamé a xdg-open dentro de un nuevo shell y coloqué esos resultados en /dev/null:
bash -c "xdg-open https://www.google.de" 2> /dev/nullLa página se abrió bien, no se mostró ningún error, más bien no se mostró nada. Y no es necesario presionar enter.