Criando seu primeiro script

LinuxBeginner
Pratique Agora

Introdução

Boas-vindas ao mundo da automação!

Imagine que você é um chef. Em vez de preparar cada prato manualmente, de memória, todas as vezes, você escreve uma receita. A equipe da cozinha pode seguir essa receita para preparar o prato perfeitamente, repetidas vezes, sem que você precise supervisionar cada etapa.

No Linux, um script é a sua receita. Ele é um arquivo de texto simples que contém comandos que o shell pode ler e executar em sequência. Essa é uma das formas mais antigas e importantes de automação em sistemas Unix e Linux.

A criação de scripts de shell se tornou popular porque os administradores precisavam de uma maneira leve de automatizar tarefas repetitivas, muito antes da existência das ferramentas modernas de gerenciamento de configuração. Ainda hoje, muitos sistemas de produção dependem de pequenos scripts de shell para configuração, manutenção e solução de problemas.

Neste laboratório introdutório, você escreverá sua primeira receita. Você vai:

  1. Rascunhar: criar o arquivo do script.
  2. Escrever: adicionar as instruções (comandos).
  3. Autorizar: conceder ao arquivo permissão para ser executado.
  4. Executar: rodar o novo programa.

Criar um arquivo de script

Primeiro, precisamos de uma folha em branco para escrever nossa receita. No Linux, um script é apenas um arquivo de texto simples.

Embora o Linux não obrigue você a usar extensões de arquivo, é um bom hábito nomear scripts de shell com .sh. Isso ajuda as pessoas a reconhecer rapidamente a função do arquivo, mesmo que o Linux dê mais importância ao conteúdo e às permissões do arquivo do que à extensão do nome.

Essa é uma ideia importante do Unix: normalmente, um arquivo é identificado mais pelo que contém e pelas permissões que possui do que pelo nome. Um script não é um tipo especial de arquivo criado por um assistente gráfico. Ele é simplesmente um texto que um programa como o Bash pode ler linha por linha.

Vamos criar um arquivo vazio chamado hello.sh no diretório do seu projeto.

Verifique se você está no local correto:

pwd

Agora, use o comando touch. Ele é o equivalente digital de pegar uma folha em branco:

touch hello.sh

Verifique sua mesa para confirmar que a folha está lá:

ls

Você deverá ver hello.sh aguardando suas instruções.

Escrever o conteúdo do script

Agora precisamos escrever a receita propriamente dita. Mas, antes, precisamos de um cabeçalho especial.

Pense em um script como uma carta. Você precisa endereçá-la à pessoa certa. No Linux, a primeira linha de um script informa ao sistema quem deve lê-lo. Essa linha é chamada de Shebang (#!).

Queremos que o shell Bash leia nosso script, então vamos endereçá-lo a /bin/bash. Também adicionaremos uma instrução simples: echo. Esse comando informa ao computador: “Diga isto em voz alta”.

O shebang é uma das convenções Unix mais antigas e práticas. Quando você executa um script como um programa, o sistema operacional lê a primeira linha e a usa para decidir qual interpretador deve processar o arquivo. Um interpretador é um programa que lê instruções e as executa, em vez de executar diretamente um binário pré-compilado.

Vamos abrir nosso arquivo vazio usando o editor nano:

nano hello.sh

Agora, digite estas duas linhas exatamente como aparecem:

#!/bin/bash
echo "Hello LabEx"

Vamos entender o que elas fazem:

  • #!/bin/bash: a “etiqueta de endereço”. Ela informa ao Linux: “Envie estas instruções para o programa Bash”.
  • echo "Hello LabEx": a “instrução”. Ela informa ao Bash para exibir Hello LabEx na tela.

Sem um shebang, o script ainda pode funcionar em alguns casos quando você o executa explicitamente com bash hello.sh, pois nesse caso você escolhe manualmente o interpretador. Porém, ao executá-lo como ./hello.sh, o shebang é a maneira padrão de informar ao sistema qual programa deve processar o arquivo.

Salvar e sair:

  1. Pressione Ctrl + O para salvar.
  2. Pressione Enter para confirmar.
  3. Pressione Ctrl + X para sair.

Confira o que você digitou lendo o arquivo com cat:

cat hello.sh

Tornar o script executável

Você escreveu uma receita, mas, por enquanto, ela é apenas uma folha de papel. O Linux tem uma política de segurança rigorosa: arquivos de texto não podem ser executados como programas a menos que você conceda explicitamente essa permissão. Isso impede que você execute acidentalmente sua lista de compras como código!

Precisamos usar a “chave” que libera a execução. O comando para alterar permissões, ou modos, é chmod. A chave que queremos adicionar é +x (mais eXecute, ou execução).

Isso não altera o conteúdo do arquivo. O comando altera seus bits de modo, que fazem parte dos metadados que o Linux armazena sobre cada arquivo. Em outras palavras, chmod +x não torna o script “mais parecido com um script”; ele apenas informa ao sistema que esse arquivo pode ser executado como um programa.

Conceda a permissão ao seu script:

chmod +x hello.sh

Vamos verificar novamente a identificação do arquivo para confirmar se funcionou:

ls -l hello.sh

Observe as permissões à esquerda. Você deverá ver um x, como em -rwxr-xr-x. O nome do arquivo também pode aparecer em verde, que é a maneira de o terminal indicar: “Pode executar; este arquivo está pronto”.

Executar o script

Chegou o momento da verdade. Vamos preparar a receita!

Para executar um script que está bem à sua frente, no diretório atual, você precisa ser específico. Não basta digitar hello.sh. Você deve digitar ./hello.sh.

  • . significa “diretório atual”.
  • / é o separador.

Portanto, ./hello.sh significa literalmente: “Execute o arquivo chamado hello.sh que está dentro desta pasta”.

Isso surpreende muitos iniciantes. O motivo é que, normalmente, quando você digita apenas o nome de um comando, o shell procura somente nos diretórios listados na variável PATH. Por segurança, o diretório atual geralmente não é pesquisado automaticamente. É por isso que ./ é importante: você está fornecendo um caminho explícito, em vez de pedir ao shell que procure o comando em outro local.

Execute o script:

./hello.sh

Se tudo tiver dado certo, o computador deverá responder educadamente:

Hello LabEx

Parabéns! Você não é mais apenas um usuário do Linux; agora é um programador Linux. Você criou, autorizou e executou com sucesso seu primeiro script de automação.

Resumo

Muito bem! Você acabou de desbloquear um grande superpoder.

Vamos revisar o “fluxo de trabalho de criação de scripts” que você aprendeu:

  1. Rascunhar: use touch ou um editor para criar o arquivo.
  2. Programar: adicione o cabeçalho #!/bin/bash e seus comandos.
  3. Desbloquear: use chmod +x para permitir que o Linux execute o arquivo.
  4. Executar: rode-o com ./scriptname.sh.

Isso pode parecer algo pequeno, mas toda configuração automatizada de grande porte, desde servidores web até supercomputadores, começa com scripts simples como este.