Bem, como a equipe do bash_completion avisou, relatei esse comportamento para a equipe bash e a resposta é: "Obrigado pelo relatório. Isso será corrigido no bash-4.3." < br> parece que o bug já é conhecido e devemos apenas esperar.
Bem ... estou tão confuso, porque o único problema real no meu caso é o apóstrofo (').
Situação: expandindo a conclusão da palavra de influência da variável PATH, com base no fato de haver apóstrofos em caminho adicional ou não.
Exemplo: Eu tenho um arquivo exe (chamado "deadbeef") com direitos exe apropriados, cujo caminho contém 2 apóstrofos:
/ home / mallniya / hard'n'soft /soft/gnu-linux/portable/deadbeef-0.6.0
Especificamente para um experimento eu coloquei o mesmo arquivo para o /home/mallniya/hardnsoftaa/soft/gnu-linux/portable/deadbeef-0.6.0
Se eu exportar o primeiro caminho para a variável $ PATH, não haverá autocompletar no bash, mas estará em um segundo caso. Quando eu digito primeiro terminal cartas de programa no diretório exportado
morto [TAB]
Não há conclusão no primeiro caso, mas quando eu uso TAB com a mesma palavra na segunda condição - funciona.
Mas se eu digitar o comando "deadbeef" no primeiro caso manualmente - também é executado.
Além disso, os comandos e type indicam que o arquivo exe existe nos dois casos.
Então qual é o problema??? Por que bash processar os apóstrofos assim?
Bem, como a equipe do bash_completion avisou, relatei esse comportamento para a equipe bash e a resposta é: "Obrigado pelo relatório. Isso será corrigido no bash-4.3." < br> parece que o bug já é conhecido e devemos apenas esperar.
Apóstrofos são caracteres especiais para quase todos os shells (shell é o termo que se refere aos intérpretes de linha de comando, que é o programa que lê o que você digita e co o apropriado).
Resposta curta : não faça isso. Como o caso de espaços, melhor evitar nomes de arquivos com significado especial ou caracteres especiais neles.
Resposta longa : se você quiser usar apóstrofos, precisará " orçamento
(0)samsung-romano:~/tmp/try% touch "hard'n'soft"
Uma maneira de cotar aspas simples é com aspas duplas. (E vice-versa, embora seja mais complexo que isso).
(0)samsung-romano:~/tmp/try% ls
hard'n'soft
Agora, se você escrever cat hard
e pressionar TAB
:
(0)samsung-romano:~/tmp/try% cat hard\'n\'soft
As barras invertidas são outra forma de citar o seguinte caractere.
Para expandir um caminho com apóstrofos, adicione um "na frente do caminho.
cd "/home/mallniya/hard
se expande sem problemas na expansão de guias.