source é um prático comando de shell interno que aceita argumentos, analisa comandos em um script e os executa no ambiente de shell. O conteúdo do arquivo é lido pela fonte e depois repassado para o interpretador Tool Command Language (TCL), que executa os comandos.
Vamos aprender como usar source para executar comandos e trabalhar com ambientes shell no Linux, juntamente com uma breve explicação de como ele difere do comando bash.
Use source para executar comandos em um arquivo
Para usar o comando source, primeiro você precisa criar um arquivo de amostra e preenchê-lo com alguns comandos shell. Comece criando um novo arquivo com o comando de toque. Abra o arquivo em um editor de texto de sua escolha e escreva alguns comandos shell básicos.
tocarteste.TXT
viteste.TXT# Escreva os comandos no arquivo de texto:
eco "Olá!"
pwd
ls
# Crie o arquivo com source ou a sintaxe de ponto
. teste.TXT
fontetexto.TXT
Escreva o arquivo de texto e passe-o como um argumento para o comando source. O sistema executará os comandos no arquivo e retornará uma saída.
Agora que você conhece o básico de como usar source, vamos tentar alterar o ambiente do shell Bash. No entanto, antes de prosseguir, você deve ter uma compreensão fundamental de variáveis de ambiente no Linux.
Use o comando source para atualizar o ambiente Bash Shell
No Linux, as variáveis de ambiente são herdadas, mas imutáveis. Se você executar um shell script Bash que modifica uma variável de ambiente $TEST, o script gerará um novo, processo de shell bifurcado e a modificação de $TEST ocorrerá dentro dele, em vez do Bash original ambiente.
O processo filho não poderá modificar o ambiente do processo pai. Ele só pode modificar seu próprio ambiente. Vamos entender isso com um exemplo prático:
exportar TESTE ="deb"
vi exemplo# Digite esses comandos no arquivo
exportar TESTE ="cama"
eco $TEST
# Escreva o arquivo, torne-o executável e execute-o
chmod +x exemplo
./exemplo # isso retornará "cama"
eco $TEST # isso retornará "deb"
Aqui é onde o comando source entra em ação. Com o comando source, você pode executar um script no mesmo ambiente shell, que de outra forma teria sido bifurcado. Portanto, se você criar um script que modifique as variáveis de ambiente, ele fará as alterações no ambiente do shell Bash.
Para testá-lo, escreva os comandos na caixa de código acima em um novo arquivo e use o comando source em vez de torná-lo executável.
# Crie um novo arquivo e edite-o
vi teste arquivo
. arquivo_teste
eco $TEST # Isso retornará "cama"
Como você pode ver, usando o comando source, você conseguiu atualizar as variáveis de ambiente do processo pai. Este é o principal caso de uso do comando source, ou seja, para modificar o ambiente pai.
Essas são todas as etapas necessárias para atualizar o ambiente do shell Bash com o comando source.
Diferença entre os comandos bash e source do Linux
A diferença entre os comandos bash e source do Linux é que, quando você executa um script com o comando bash, ele informa ao Linux kernel para criar um novo processo Bash para ler e executar o script, copiar a saída para o processo shell original e exibi-lo.
Mas o comando source é um shell embutido que lê e avalia um arquivo dentro do processo shell atual. Portanto, todas as alterações feitas pelo script serão mantidas no shell Bash.
Solução de problemas dos erros de comando de origem
Em alguns sistemas Linux, você pode encontrar um erro "fonte não encontrada" ao tentar usar o comando source. Você pode corrigir esse erro de duas maneiras:
1. Alterar a casca
Alguns shells não suportam o comando source. Nesse caso, você precisará alterar seu ambiente de shell com o chsh -s ($que shell_name) comando.
Abra um novo terminal após mudando sua conchae tente usar o comando source. Se o novo shell oferecer suporte ao sourcing, ele deverá funcionar perfeitamente.
2. Use a sintaxe de ponto/ponto
Alguns ambientes shell não suportam "fonte"sintaxe mas a alternativa"." sintaxe. A sintaxe "source" é sinônimo de ponto no Bash. Mas isso não funciona no shell POSIX, portanto, para compatibilidade máxima, use a sintaxe de ponto.
Comandos básicos do Linux que você deve saber
Os comandos shell do Linux são uma ótima maneira de interagir com o sistema usando o terminal. Eles são a própria essência do uso de sistemas *NIX.
Embora você não precise conhecer todos os comandos, estar familiarizado com alguns úteis certamente será proveitoso à medida que você se aventura no mundo do Linux.