Para bash, o separador de caminho para a variável de ambiente $PATH
é":"
Então por curiosidade:
se tiver um diretório chamado
$HOME/with:character
Existe alguma maneira de adicioná-lo ao caminho de pesquisa?
Por favor, note que eu acho que adicionar :
a um nome de arquivo não é uma ideia muito inteligente, mas eu queria saber se eu poderia adicionar esse diretório a um caminho de pesquisa se eu encontrasse um
Eu tentei com uma barra invertida, mas isso não parece funcionar:
export PATH="$PATH:$HOME/with\\:character"
double :
( ::
) também não funciona
Não há como escapar do cólon. Isso é impossível de acordo com o padrão POSIX. O tratamento PATH é feito dentro da
execvp
função na biblioteca C onde não há provisão para nenhum tipo de citação. Esta é a razão pela qual a inclusão de caracteres que não estão no conjunto de caracteres de nome de arquivo portátil é fortemente recomendada.Do SUSv7 :
Veja também fonte de GLIBC execvp . Ele usa a
strchrnul
função para processar os componentes PATH, sem nenhum tipo de escape.Sua melhor aposta é renomear o diretório. Se realmente precisar ter esse nome, você pode criar um link simbólico e adicioná-lo ao seu
$PATH
: