Criando e Executando um Script Básico
Nesta etapa, criaremos um ficheiro de script simples e usaremos o comando source para executá-lo no nosso ambiente de shell atual. Isso nos ajudará a entender como o source difere da execução normal de scripts.
Quando você executa um script normalmente (usando ./script.sh), a shell cria um novo subprocesso para executar o script. Quaisquer variáveis ou funções definidas nesse script existem apenas dentro desse subprocesso e desaparecem quando o script termina. No entanto, quando você usa o comando source (ou sua abreviação .), os comandos no script são executados no seu ambiente de shell atual, permitindo que variáveis e funções persistam após a conclusão do script.
Vamos criar um script básico para demonstrar este conceito:
1. Navegue para o diretório do projeto
Primeiro, certifique-se de estar no diretório correto:
cd ~/project
2. Crie um ficheiro de script simples
Crie um novo ficheiro chamado variables.sh usando o editor nano:
nano variables.sh
Adicione o seguinte conteúdo ao ficheiro:
#!/bin/bash
## This script sets an environment variable
export WEATHER="Sunny"
echo "The weather is now set to: $WEATHER"
Pressione Ctrl+O para salvar o ficheiro, depois Enter para confirmar o nome do ficheiro e, finalmente, Ctrl+X para sair do nano.
3. Torne o script executável
Antes de podermos executar o script, precisamos torná-lo executável:
chmod +x variables.sh
4. Execute o script normalmente
Primeiro, vamos executar o script da maneira tradicional:
./variables.sh
Você deve ver uma saída semelhante a:
The weather is now set to: Sunny
Agora, verifique se a variável WEATHER existe na sua shell atual:
echo $WEATHER
Você provavelmente não verá nenhuma saída, ou uma linha vazia. Isso ocorre porque a variável foi definida apenas no subprocesso que executou o script, não na sua shell atual.
5. Execute o script com source
Agora, vamos usar o comando source para executar o script:
source variables.sh
Você verá a mesma saída:
The weather is now set to: Sunny
Verifique a variável WEATHER novamente:
echo $WEATHER
Desta vez, você deve ver:
Sunny
A variável WEATHER agora existe na sua shell atual porque você usou o comando source para executar o script.
6. Usando a notação abreviada
Você também pode usar a notação abreviada de ponto (.) para o comando source:
. variables.sh
Isso produzirá o mesmo resultado que usar source variables.sh.