Pular para o conteúdo principal
InicioTutoriaisData Analysis

Como escrever um script Bash: um tutorial simples de scripts Bash

Descubra os fundamentos da criação de scripts Bash e aprenda a escrever um script Bash.
Actualizado mai. de 2024  · 5 min leer

Um shell é um tipo de programa de computador que apresenta uma interface para o sistema operacional. O nome shell foi derivado do fato de que ele é a camada mais externa do sistema operacional. 

Para gerenciar a interação entre os usuários e o sistema operacional, o shell solicita uma entrada e, em seguida, interpreta essa entrada para o sistema operacional antes de lidar com qualquer saída recebida. Essa entrada pode ser fornecida por meio de uma interface de linha de comando (CLI) ou de uma interface gráfica do usuário (GUI), dependendo da operação e da função que o computador assumir.

Confira nosso artigo O que significa shell? para se aprofundar no que é um shell e como ele pode ajudá-lo. 

Basicamente, um shell permite que os usuários e outros programas se comuniquem diretamente com os componentes de um sistema operacional.

Uma introdução a scripts de shell 

Os scripts de shell são uma parte importante da comunicação com o sistema operacional de um computador e são fáceis de aprender, mesmo para quem não tem experiência em programação. Por scripts, estamos nos referindo a uma sequência de comandos de shell e do sistema operacional que são gravados e armazenados em um arquivo: algumas operações comuns realizadas por scripts de shell são tarefas como manipulação de arquivos, execução de programas e impressão de textos. 

Aprenda mais sobre Processamento de Dados em Shell com nosso curso. 

Aprender a executar esse procedimento simples pode economizar aos desenvolvedores uma quantidade considerável de tempo de desenvolvimento, pois determinados comandos não precisarão ser escritos manualmente de forma repetida – é possível até mesmo programar scripts para serem executados automaticamente. 

Há vários shells diferentes disponíveis para usuários de Unix e Linux. No restante deste tutorial, vamos nos concentrar especificamente no Bourne Again SHell (Bash), que é uma versão aprimorada do shell Bourne e é uma das interfaces de linha de comando mais comuns para sistemas operacionais baseados no Unix (incluindo o Linux). 

O que é um script Bash? 

O Bash é uma interface de linha de comando do Unix responsável pela interação com o sistema operacional de um computador. Da mesma forma que os roteiros de filmes informam aos atores as ações a serem executadas, um script Bash informa ao shell Bash o que fazer. Portanto, um script Bash é uma maneira útil de agrupar comandos para criar um programa

Qualquer comando que você possa executar diretamente na linha de comando pode ser colocado em um script Bash, e você pode esperar que ele execute as mesmas ações que faria na linha de comando. Como alternativa, qualquer comando inserido no script Bash pode ser executado diretamente na linha de comando, e o resultado deve ser o mesmo. Em outras palavras, se você sabe como interagir com o computador na linha de comando, já sabe um pouco sobre scripts Bash. 

Uma das principais diferenças é que um script Bash é um arquivo de texto simples que, por convenção, é armazenado com extensão .sh (ele ainda pode ser executado sem a extensão .sh). 

Outra distinção dos scripts Bash é o "shebang" que ocorre na primeira linha de todos os scripts. Basicamente, o shebang é um caminho absoluto para o interpretador Bash formado por uma combinação de Bash "#" e Bang "!" seguido do caminho do shell Bash. Ele é usado para informar ao sistema operacional Linux qual interpretador usar para analisar o arquivo. 

Como escrever um script Bash

Vamos criar um exemplo simples de script Bash "Hello World" para que você comece a usar o script Bash. Se quiser se aprofundar na criação de scripts Bash, confira o curso Introdução a Scripts Bash

Etapa 1: criar um novo arquivo de texto simples 

A primeira etapa é criar um novo arquivo de texto simples. Você pode fazer isso executando o seguinte comando no prompt de comando: 

notepad hello_world.sh

Observação: a execução desse comando pode gerar um prompt perguntando se deseja criar um novo arquivo; selecione "Yes". 

Etapa 2: como especificar o interpretador

Na primeira linha do nosso script, é preciso especificar qual interpretador gostaríamos de usar para analisar o script. Nesse cenário, é o Bash. Portanto, temos que colocar o shebang na primeira linha do script. 

#!/bin/bash

Etapa 3: implementar comandos

O objetivo do nosso script Bash é imprimir "Hello World!". Para executar essa tarefa, vá para uma nova linha e use o comando echo seguido da cadeia de caracteres que gostaríamos de imprimir.

echo "Hello World!" 

Depois de concluído, salve o arquivo e abra o Git Bash.  

Observação: é possível baixar o Git Bash na seção Downloads do Git. Basta selecionar a versão do Git que corresponde ao seu sistema operacional. 

Em seguida, execute o seguinte comando: 

bash hello_world.sh

O resultado deve ser "Hello World!", conforme mostrado na Figura 1. 

Uma chamada para o script Bash retorna "Hello World!" no terminal.

Figura 1: saída do script Bash

 

Como capturar a entrada do usuário em scripts Bash

Agora você sabe como escrever um script "Hello World!" simples. Vamos dar uma olhada em como podemos usar o Bash para escrever scripts que exigem uma entrada do usuário. Neste exemplo, criaremos um gerador de atividades que vai solicitar o nome do usuário e, em seguida, selecionar uma atividade aleatória para convidá-lo a participar de uma série de atividades. 

As etapas para criar o arquivo são as mesmas de How to Write a Bash Script – a diferença são os comandos que inserimos no script Bash. 

  1. Crie um novo arquivo de texto simples no prompt de comando usando o bloco de notas.
notepad generate-activity.sh 
  1. Especifique o interpretador Bash inserindo o shebang na primeira linha do script.
#!/bin/bash
  1. Escreva os comandos para executar o script e, em seguida, salve o arquivo.

Agora, quando chamamos o script Bash no terminal, o mesmo resultado da Figura 2 é esperado. 

#!/bin/bash

# Greet user and request their name
echo "The activity generator"
read -p "What is your name? " name

# Create an array of activities
activity[0]="Football"
activity[1]="Table Tennis"
activity[2]="8 Ball Pool"
activity[3]="PS5"
activity[4]="Blackjack"

array_length=${#activity[@]} # Store the length of the array
index=$(($RANDOM % $array_length)) # Randomly select an index from 0 to array_length

# Invite the user to join you participate in an activity
echo "Hi" $name, "would you like to play" ${activity[$index]}"?"
read -p "Answer: " answer

Demonstração do script generate-activityshFigura 2: demonstração do script generate-activity.sh.

Como criar uma função em um script Bash

Na programação, as funções são usadas para agrupar um conjunto de instruções repetidas – saiba mais sobre as funções em Python. O objetivo de escrever funções é evitar escrever o mesmo código constantemente, além de tornar o código mais legível. 

Uma função Bash pode ser considerada uma função comum: um conjunto de comandos que pode ser chamado várias vezes. No entanto, as funções Bash são um pouco mais limitadas em comparação com a maioria das linguagens de programação (ou seja, as funções Bash não permitem retornar um valor quando chamadas). 

Antes de criarmos um script Bash usando uma função, vamos dar uma olhada na sintaxe para declarar uma função Bash. Podemos definir uma função escrevendo o nome de uma função, seguido de parênteses e chaves para o corpo da função – essa é a maneira mais comum de escrever uma função Bash. Fica assim em um código: 

# Most common way to write a bash function.
example_function () {
  commands
{

A outra maneira de formatar uma função Bash é começar a linha com a palavra-chave reservada Bash function, depois o nome da função e chaves para o corpo da função – não precisamos dos parênteses. 

# Another way to write a bash function.
function example_function {
  commands
{

A definição da função não executa os comandos. Para invocar uma função Bash, é preciso chamar o nome da função, da seguinte forma: 

#!/bin/bash

# A hello world bash function
hello_world () {
  echo "Hello World!"
}

# Invoking the hello_world function
hello_world

Acima, criamos uma função hello_world que imprime "Hello World!" quando o script Bash é executado.

Passagem de argumentos para funções Bash

Argumentos são variáveis usadas em uma função específica. No Bash, não é possível passar argumentos para funções como nas linguagens de programação de alto nível, como Python, Julia etc. As funções do Bash têm seu próprio argumento na linha de comando, e podemos passar parâmetros para uma função colocando-os após uma chamada para o nome da função, separados por um espaço se houver vários argumentos.

Em essência, os argumentos da função são tratados como parâmetros posicionais, e variáveis de shell ($1, $2, ..., $n) são usadas para acessar os argumentos passados para a função. 

#!/bin/bash
greet () {
  echo "Hello $1 $2"
}

greet "John" "Doe" 

No script Bash acima, passamos dois argumentos, John e Doe, para nossa função greet. Quando o script Bash é executado agora, devemos ver a seguinte saída:

Hello John Doe

Como escrever instruções "If" no Bash

As instruções "If" são declarações condicionais usadas em linguagens de programação. Se for comprovado que uma declaração é verdadeira, então uma condição será executada. Essa funcionalidade nos permite determinar as circunstâncias em que um determinado trecho de código deve ser executado. 

No Bash, iniciamos a condicional com uma instrução if e a finalizamos com fi (if escrito ao contrário). Veja um exemplo de script Bash com condicionais if: 

#!/bin/bash

read -p "Give me a number: " number
if [ $number -gt 10 ];
then
  echo "Your number is greater than 10."
fi

No script Bash acima, é solicitado ao usuário que forneça um número. Se o número fornecido pelo usuário for maior que 10, a mensagem "Your number is greater than 10" (Seu número é maior que 10) será enviada ao terminal. Se não for, o programa será encerrado. A Figura 3 é um exemplo em que passamos um número maior que 10. 

Uso de instruções if em scripts Bash

Figura 3: uso de instruções "if" em scripts Bash

Resumo 

Os scripts Bash são uma maneira útil e elegante de agrupar comandos. É possível aproveitar o poder de um script Bash em vários casos de uso, como a execução de um comando shell, a execução de vários comandos juntos, a personalização de tarefas administrativas, a automação de tarefas e muito mais. 

Seguindo as etapas disponibilizadas no tutorial acima, agora você sabe criar um script simples para imprimir "Hello World!" usando o Bash. 

Temas

Cursos de script Bash

Course

Data Processing in Shell

4 hr
18.3K
Learn powerful command-line skills to download, process, and transform data, including machine learning pipeline.
See DetailsRight Arrow
Start Course
Veja MaisRight Arrow
Relacionado

blog

As 9 melhores ferramentas de análise de dados para analistas de dados em 2023

Está pensando em começar uma nova carreira como analista de dados? Aqui está tudo o que você precisa saber sobre as ferramentas de análise de dados que liderarão o setor de ciência de dados em 2023.
Javier Canales Luna's photo

Javier Canales Luna

16 min

blog

O que é análise de dados? Um guia especializado com exemplos

Explore o mundo da análise de dados com nosso guia abrangente. Saiba mais sobre sua importância, processo, tipos, técnicas, ferramentas e as principais carreiras em 2023
Matt Crabtree's photo

Matt Crabtree

15 min

blog

O que é o Microsoft Fabric?

Descubra como o Microsoft Fabric revoluciona a análise de dados e saiba como seus principais recursos capacitam as empresas a tomar decisões orientadas por dados.
Kurtis Pykes 's photo

Kurtis Pykes

10 min

tutorial

Entendendo a assimetria e a curtose e como traçá-las

Um guia visual abrangente sobre assimetria/curtose e como elas afetam as distribuições e, por fim, seu projeto de ciência de dados.
Bex Tuychiev's photo

Bex Tuychiev

10 min

tutorial

Tutorial do Chroma DB: Um guia passo a passo

Com o Chroma DB, você pode gerenciar facilmente documentos de texto, converter texto em embeddings e fazer pesquisas de similaridade.
Abid Ali Awan's photo

Abid Ali Awan

10 min

tutorial

Guia do cientista de dados para processamento de sinais

Descubra insights acionáveis ocultos em dados de sinais complexos filtrando ruídos, escolhendo visualizações apropriadas, encontrando padrões no domínio do tempo e da frequência e muito mais usando o processamento de sinais.
Amberle McKee's photo

Amberle McKee

25 min

See MoreSee More