Estoy haciéndome un pequeño script para que me saque mi "tendencia" a la hora de navegar. Para ello, la mejor idea que se me había ocurrido era utilizar la base de datos SQLite que guarda el historial en Firefox y a partir de ahí sacar las 25 páginas más visitadas ordenadas por frecuencia. Esto que a priori sería lo difícil, ya lo tengo hecho.
Mi problema reside en que dicha base de datos reside en una carpeta del perfil que Firefox crea, situada en /home/[nombreusuario]/.mozilla/firefox/[PERFIL], la cual (PERFIL) está constituida por una serie de caracteres alfanuméricos aleatorios, y depende de cada usuario y ordenador. Por tanto, si yo quisiera utilizar esta herramienta en todos mis equipos, necesitaría conocer de antemano el nombre aleatorio que se ha generado en cada equipo. Lo cual es tedioso.
La solución más simple que se me pasó por la cabeza era utilizar bash, ya que puedo sacar el nombre de la carpeta donde se encuentra fácilmente:
Using bash Syntax Highlighting
- cd /home/$USERDIR/.mozilla/firefox/ && ls | grep .default
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Ahora bien, en mi infinita ignorancia, intenté pasar lo que devuelve la shell directamente a una variable dentro de mi código perl:
Using perl Syntax Highlighting
- my $ar = chr(36).'USERNAME';
- my $dir = '/home/'.$ar.'/.mozilla/firefox/';
- my $var = system("cd $dir && ls | grep .default");
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Pero no funciona tal y como en mi cabeza pensaba, sino que simplemente ejecuta la función system() pero su salida no queda recogido en $var. ¿Alguien conoce alguna forma de recoger el resultado del comando bash en una variable dentro del script para poder trabajar con ella? La opción simple es agregar un "> output.txt" y después abrirlo y leerlo, pero me parece "poco elegante".
Gracias.