A sintaxe funciona perfeitamente, então provavelmente ela não está sendo adicionada ao seu ambiente bash por um motivo ou outro.
Veja se ele está carregado em seu ambiente:
Abra uma nova janela do terminal bash e execute:
declare -F | grep no_backups_complete
Para ver a declaração da função (se estiver disponível):
type no_backups_complete
Se você obtiver um resultado, para o primeiro comando, como:
declare -f no_backups_complete
que indica que está carregado no ambiente; se não houver resultado, não é. O tipo de resposta deve ser '... não encontrado', se não estiver disponível, ou listar a definição da função, se estiver disponível.
Continuando com a suposição de que não é carregado em seu ambiente bash:
Onde você colocou o arquivo?
-
A localização habitual está no diretório /etc/bash_completion.d/. Ele não precisa ser marcado como executável para ser colocado nesse diretório ou ter um nome específico. Você tem o formato correto.
-
Como teste, simplesmente digite
source /path/to/your/completion.file
e veja se o vim 'ignora' os arquivos que terminam em tils. Deveria - fez na minha concha bash. -
Certifique-se de que: 1. copie o conteúdo do script para o seu arquivo .bashrc, ou
2. Copie-o para /etc/bash_completion.d/ ou
3. ter o arquivo de conclusão fornecido por .bashrc
Qualquer que seja o método que você vá, se você não der origem ao arquivo, você precisará reiniciar o terminal para que ele seja ativado. Se estiver no diretório /etc/bash_completion.d, recarregar o bash não o carregou ; Eu tive que fechar a janela do terminal e reabri-lo - isso pode ser específico do programa terminal, mas o .bashrc não era suficiente para aquele caso (opção 2). As outras duas opções começariam a funcionar assim que o .bashrc fosse originado.
Se é carregado em seu ambiente; Ou seja, os comandos declare -F | grep ..
e type ..
retornam os valores esperados, poste de volta com os resultados. Eu acho que é muito menos provável, e vale a pena passar por essas verificações rápidas antes de seguir esse caminho.