|
| 1 | +--- |
| 2 | +title: "Auto-completar no bash macOS" |
| 3 | +description: "Configurações opcionais do auto-completar do basch no macOS." |
| 4 | +headless: true |
| 5 | +_build: |
| 6 | + list: never |
| 7 | + render: never |
| 8 | + publishResources: false |
| 9 | +--- |
| 10 | + |
| 11 | +### Introdução |
| 12 | + |
| 13 | +O script de completar do bash pode ser gerado com `kubectl completion bash`. |
| 14 | +Ativando esse script no seu shell, você estará habilitando o auto-completar do kubectl. |
| 15 | + |
| 16 | +Entretanto, o script para auto-completar do kubectl depende do |
| 17 | +[**bash-completar**](https://github.com/scop/bash-completion) que você deve ter instalado com antecedência. |
| 18 | + |
| 19 | +{{< warning>}} |
| 20 | +Existem duas versões de auto-completar do bash, v1 e v2. V1 é para Bash 3.2 |
| 21 | +(que é padrão no macOS), e v2 que é para Bash 4.1+. O script de auto-completar |
| 22 | +do kubectl **não funciona** corretamente com o auto-completar do bash v1 e o |
| 23 | +Bash 3.2. Ele requer **bash-completar v2** e **Bash 4.1+**. Por isso, para |
| 24 | +executarmos o auto-completar do kubectl no macOS de forma correta, você precisa |
| 25 | +instalar e usar o Bash 4.1+([*guia*](https://itnext.io/upgrading-bash-on-macos-7138bd1066ba)). |
| 26 | +As instruções a seguir, levam em conta que você utilize o Bash 4.1+. |
| 27 | +(Isso quer dizer, nenhuma versão do Bash 4.1 ou mais recente). |
| 28 | +{{< /warning >}} |
| 29 | + |
| 30 | +### Atualizando Bash |
| 31 | + |
| 32 | +As instruções abaixo sugerem que você esteja utilizando o Bash 4.1+. Você pode verificar a versão do seu Bash com o comando: |
| 33 | + |
| 34 | +```bash |
| 35 | +echo $BASH_VERSION |
| 36 | +``` |
| 37 | + |
| 38 | +Se a versão do Bash for antiga, você pode instalar ou atualizar utilizando o Homebrew: |
| 39 | + |
| 40 | +```bash |
| 41 | +brew install bash |
| 42 | +``` |
| 43 | + |
| 44 | +Recarregue seu shell e verifique se a versão desejada foi instalada ou se está em uso: |
| 45 | + |
| 46 | +```bash |
| 47 | +echo $BASH_VERSION $SHELL |
| 48 | +``` |
| 49 | + |
| 50 | +O Homebrew normalmente instala os pacotes em `/usr/local/bin/bash`. |
| 51 | + |
| 52 | +### Instalar bash-completar |
| 53 | + |
| 54 | +{{< note >}} |
| 55 | +Como mencionado anteriormente, essas instruções confiam que você esteja utilizando o Bash 4.1+, dessa forma você |
| 56 | +vai instalar o bash-completar v2 (diferentemente do Bash 3.2 e do bash-completar v1, |
| 57 | +nesses casos, o completar do kubectl não irá funcionar). |
| 58 | +{{< /note >}} |
| 59 | + |
| 60 | +Você pode testar se você tiver o bash-completar v2 instalado, utilizando `type _init_completion`. |
| 61 | +Se não, você pode instalar utilizando o Homebrew: |
| 62 | + |
| 63 | +```bash |
| 64 | +brew install bash-completion@2 |
| 65 | +``` |
| 66 | + |
| 67 | +Como indicado na saída deste comando, adicione o seguinte em seu arquivo `~/.bash_profile`: |
| 68 | + |
| 69 | +```bash |
| 70 | +brew_etc="$(brew --prefix)/etc" && [[ -r "${brew_etc}/profile.d/bash_completion.sh" ]] && . "${brew_etc}/profile.d/bash_completion.sh" |
| 71 | +``` |
| 72 | + |
| 73 | +Recarregue seu shell e verifique que o bash-completar v2 está instalado corretamente, utilizando `type _init_completion`. |
| 74 | + |
| 75 | +### Habilitar auto-completar do kubectl |
| 76 | + |
| 77 | +Agora você precisa garantir que o script de auto-completar do kubectl seja carregado em todas |
| 78 | +as suas sessões de shell. Existem várias maneiras de fazer isso: |
| 79 | + |
| 80 | +- Carregue o script de auto-completar no seu arquivo `~/.bash_profile`: |
| 81 | + |
| 82 | + ```bash |
| 83 | + echo 'source <(kubectl completion bash)' >>~/.bash_profile |
| 84 | + ``` |
| 85 | + |
| 86 | +- Adicione o script de auto-completar ao diretório `/usr/local/etc/bash_completion.d`: |
| 87 | + |
| 88 | + ```bash |
| 89 | + kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl |
| 90 | + ``` |
| 91 | + |
| 92 | +- Se você tiver um alias para o kubectl, pode estender o auto-completar do shell para funcionar com esse alias: |
| 93 | + |
| 94 | + ```bash |
| 95 | + echo 'alias k=kubectl' >>~/.bash_profile |
| 96 | + echo 'complete -o default -F __start_kubectl k' >>~/.bash_profile |
| 97 | + ``` |
| 98 | + |
| 99 | +- Se você tiver instalado o kubectl com o Homebrew(conforme explicado |
| 100 | + [aqui](/docs/tasks/tools/install-kubectl-macos/#install-with-homebrew-on-macos)), |
| 101 | + então o script de auto-completar do kubectl deverá estar pronto em `/usr/local/etc/bash_completion.d/kubectl`. |
| 102 | + Neste caso, você não precisa fazer mais nada. |
| 103 | + |
| 104 | + {{< note >}} |
| 105 | + A instalação do bash-completar v2 via Homebrew carrega todos os arquivos no diretório |
| 106 | + `BASH_COMPLETION_COMPAT_DIR`, é por isso que os dois últimos métodos funcionam.. |
| 107 | + {{< /note >}} |
| 108 | + |
| 109 | +De qualquer forma, após recarregar seu shell, o auto-completar do kubectl deve estar funcionando. |
0 commit comments