você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

Flexibilidade na execução do Firefox na linha de comando

Colaboração: André Pinto

Data de Publicação: 08 de Janeiro de 2005

Esse roteiro (script) permite uma maior flexibilidade na execução de navegadores da família Mozilla.

Suas principais funções:

  • Abrir páginas locais especificando apenas o nome de um arquivo:

    firefox pagina.html
    

  • Abrir várias páginas simultaneamente

    firefox www.dicas-l.com.br .bash_history
    

  • Utilizar um navegador que já está rodando, evitando as janelas de escolha de perfil.

Segue abaixo o roteiro:

#!/bin/sh
#
# Esse roteiro permite uma maior flexibilidade na execução de navegadores
# da família Mozilla.
#
# Suas principais funções:
# - Abrir páginas locais especificando apenas o nome de um arquivo:
#   firefox pagina.html
# - Abrir várias páginas simultaneamente
#   firefox www.dicas-l.com.br .bash_history
# - Utilizar um navegador que já está rodando, evitando as janelas de escolha de perfil
#
# 01/12/2004 André Pinto (andre.pinto@poli.usp.br)

# O nome desse roteiro (script) deve ser igual ao nome do arquivo
# executável do navegador
#
# firefox   testado
# mozilla   possivelmente (não testado)
#
nome=$(basename $0)

# Pasta onde está instalado o navegador
#
pasta=/usr/local/lib/$nome

# Onde será aberta a página, caso o navegador já esteja rodando?
#
# new-tab       Na mesma janela, numa nova aba
# new-window    Numa nova janela
# <vazio>       Usa configuração atual do navegador
#
onde=new-tab

########################################
# Daqui em diante nada deve ser mexido #
########################################

roda ()
{
   eval "$@" &
}

executa ()
{
   exec "$@"
}

rodando ()
{
   $MOZ_CLIENT_PROGRAM -a $nome 'ping()' 2>/dev/null >/dev/null
   return $?
}

MOZ_CLIENT_PROGRAM=$pasta/mozilla-xremote-client
MOZ_PROGRAM=$pasta/$nome

[ -z "$1" ] && executa $MOZ_PROGRAM

rodando && abre_novo=0

interpreta=0
case "$1" in
 -*) executa $MOZ_PROGRAM ${1:+"$@"} ;;
 *) interpreta=1 ;;
esac

if [ "$interpreta" -eq "1" ]
then
 while [ $# -gt 0 ]
 do
   opt="$1"

   if [ -z "$(echo $opt | grep -e ':/')" ]
   then
     if [ -z "$(echo $opt | grep -e '^/')" ]
     then
       if [ -f "$opt" ]; then
         opt="file://$PWD/$opt"
       else
         opt="http://$opt"
       fi
     else
       opt="file://$opt"
     fi
   fi

   if [ "$abre_novo" == 0 ]
   then
     roda "$MOZ_CLIENT_PROGRAM -a $nome \"openURL($opt${onde:+,$onde})\""
   else
     roda "$MOZ_PROGRAM \"$opt\""
     while ! rodando
     do
       sleep 5
     done
   fi

   shift
   abre_novo=0
 done
fi


Veja a relação completa dos artigos de André Pinto