$BROWSER é entendido por vários utilitários como sendo o seu navegador da Web de sua preferência.
Dependendo do utilitário, espera-se que ele contenha:
- o caminho ou o nome do executável
- uma lista de palavras cujo primeiro é o caminho ou nome e os outros uma lista de argumentos iniciais. Se você tiver sorte, também entenderá alguma forma de citar semelhante ao que as shells fazem.
- (muito improvável e seria uma coisa muito imprudente) o início de uma linha de comando do shell.
Se você estivesse no primeiro caso, esperaria que o utilitário em que você tentou se queixasse de um comando "lynx -cfg=~/.lynx.cfg" inexistente.
No terceiro caso, observe que os shells não expandem o ~ em -cfg=~/.lynx.cfg . zsh apenas faz isso quando a opção magicequalsubst está ativada. bash apenas expande um ~ após um = se o que está à esquerda de = se parece com um nome de variável válido e não está no modo POSIX.
No entanto lynx (pelo menos versão 2.8.9dev.16 no meu sistema) parece entender ~ como significando o diretório pessoal de uma pessoa, então eu esperaria que você trabalhasse para utilitários no segundo e terceiro categoria.
$ BROWSER='echo -cfg=~' sensible-browser foo
-cfg=~ foo
Assim, o seu navegador é da categoria quarto que ignora qualquer coisa, exceto a primeira palavra, ou apenas dá uma dica sobre o que é seu navegador; ou a sua versão de lynx não entende ~ como significando casa.
Execute seu utilitário como strace -fe execve the-utility para ver o que ele tenta executar.
No caso de suas versões de lynx não tratarem ~ como home, você pode definir $BROWSER como:
export BROWSER="lynx -cfg=$HOME/.lynx.cfg"
(assumindo $HOME não contém espaços em branco ou aspas (ou outros caracteres especiais para um shell))
Em qualquer caso, você deve poder definir $BROWSER como um script que passa os parâmetros corretos para lynx , como:
#! /bin/sh -
exec lynx -cfg="$HOME/.lynx.cfg" "$@"
e use isso como seu $BROWSER .
Por acaso, se o seu $HOME começou com ~ caracteres, isso enganaria lynx , e é por isso que não é uma boa ideia que lynx manipule esses ~ por si só. / sup>