Se $BROWSER estiver vazio, [ -n $BROWSER ] se tornará apenas [ -n ] . Isso testa se -n tem comprimento diferente de zero, o que é sempre verdadeiro.
Em seguida, $BROWSER '/tmp/flash-viewer.htm' é executado, o que na verdade é apenas '/tmp/flash-viewer.htm' se $BROWSER estiver vazio.
Use
if [ -n "$BROWSER" ]; then
para que haja sempre um segundo argumento.
Para descobrir o caminho exato do seu navegador, use which <browser> , substituindo <browser> pelo navegador com o qual você está tentando abrir o arquivo.
Por exemplo,
which firefox
retornaria /usr/bin/firefox , então você poderia fazer:
BROWSER=/usr/bin/firefox