O interpretador da linha de comando
Shell é um programa que interpreta comandos e inicia os processos correspondentes. Em shells textuais como Bash e Zsh, você pode executar programas, usar variáveis e combinar instruções. Parte dos comandos é implementada pelo próprio shell, e parte corresponde a executáveis externos.
Ao digitar uma linha, você não entrega necessariamente o texto original ao programa chamado. O shell pode expandir variáveis, interpretar aspas e resolver padrões de arquivos antes de iniciar a ferramenta. Entender essa etapa explica muitos comportamentos inesperados no terminal.
O shell também pode ler as instruções de um script e executá-las em sequência. A sintaxe do arquivo precisa ser compatível com o interpretador escolhido, por isso um exemplo escrito para Bash pode exigir adaptação para PowerShell ou Fish.
Variáveis e aspas
servico_local='localhost:3000'
printf '%s
' "$servico_local"A primeira linha define uma variável do shell. Na segunda, as aspas duplas permitem expandir seu valor e mantê-lo como um argumento. O formato de printf orienta a impressão sem executar uma chamada de rede.
No exemplo, trocar as aspas duplas de "$servico_local" por aspas simples faria o shell preservar o nome da variável como texto, em vez de consultar seu valor. As aspas duplas permitem essa expansão e mantêm o resultado como um argumento. Retirar as aspas exige considerar as expansões aplicadas pelo shell, especialmente quando o valor contém espaços ou padrões de arquivos.
Variável local e ambiente do processo
Uma variável do shell não é automaticamente disponibilizada aos programas iniciados por ele. O uso de export permite incluí-la no ambiente dos processos seguintes. O programa também precisa estar preparado para ler aquele nome.
Alterar uma variável em uma janela não atualiza todas as outras sessões nem um processo que já estava executando. Cada processo recebe seu ambiente ao ser iniciado, salvo mecanismos específicos de comunicação. Esse detalhe explica uma configuração que parece ter sido alterada, mas não chegou à aplicação.
Shell e terminal têm funções distintas
O terminal apresenta a interação textual. Dentro dele, pode executar um shell local, uma conexão remota ou outro programa. Trocar o aplicativo de terminal não altera necessariamente o interpretador usado.
O prompt costuma indicar que o shell está pronto para receber outra linha. Ele pode mostrar diretório e outros detalhes, mas seu formato é configurável. Não use apenas a aparência do prompt para identificar a máquina ou o ambiente.
Como conferir um comando
Consulte a documentação do shell para expansões e a documentação da ferramenta para seus argumentos. Verifique diretório, aspas e variáveis relevantes antes de executar uma operação que modifica arquivos. Uma linha sintaticamente válida ainda pode apontar para o alvo errado.
O verbete de variável de ambiente detalha como valores são fornecidos aos programas iniciados pelo shell.
Dúvidas frequentes
Perguntas frequentes sobre Shell
- Todo comando é um programa externo?
- Shells oferecem comandos internos e também iniciam executáveis externos. A interpretação depende do nome encontrado e da configuração do ambiente.
- Aspas simples e duplas têm o mesmo efeito?
- Em Bash e Zsh, aspas simples preservam o texto literalmente. Aspas duplas permitem determinadas expansões e mantêm o resultado como um argumento nas situações usuais.
- Alterar uma variável atualiza processos já abertos?
- Processos normalmente recebem uma cópia do ambiente ao iniciar. Uma mudança posterior no shell não atualiza automaticamente os programas que já estavam executando.
- Um script funciona em qualquer shell?
- Os interpretadores têm sintaxes e recursos diferentes. O script precisa indicar ou documentar o shell compatível.
Para continuar
Recursos relacionados
Documentação
Expansões no manual do Bash
Explica como o shell transforma a linha antes de executar os comandos.
Abrir recursoDocumentação
Terminal integrado do VS Code
Apresenta sessões de terminal, processos e interação no editor.
Abrir recursoSite de referência
Desenvolvimento Colaborativo da Dev Side Studio
Conheça o acompanhamento técnico ao vivo para investigar expansões, variáveis e caminhos interpretados pelo shell do seu ambiente.
Abrir recursoAplicação na formação
Developer Workspace
O shell interpreta comandos e inicia ferramentas no ambiente de desenvolvimento.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.