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.8K
Learn powerful command-line skills to download, process, and transform data, including machine learning pipeline.
See DetailsRight Arrow
Start Course
Ver maisRight Arrow
Relacionado

blog

O que é o Shell?

Descubra o que é o Shell e como aprendê-lo pode tornar você um cientista de dados mais eficiente e versátil.

Wendy Gittleson

13 min

tutorial

Tutorial de como executar scripts Python

Saiba como executar um script Python a partir da linha de comando e também como fornecer argumentos de linha de comando ao seu script.
Aditya Sharma's photo

Aditya Sharma

10 min

tutorial

Tutorial de funções Python

Um tutorial sobre funções em Python que aborda como escrever funções, como chamá-las e muito mais!
Karlijn Willems's photo

Karlijn Willems

14 min

tutorial

Tutorial do Power BI para iniciantes

Aprenda os conceitos básicos do Power BI e como criar um relatório básico com este tutorial passo a passo.
DataCamp Team's photo

DataCamp Team

16 min

tutorial

Tutorial de execução de scripts Python no Power BI

Descubra as diferentes maneiras de usar o Python para otimizar a análise, a visualização e a modelagem de dados no Power BI.
Joleen Bothma's photo

Joleen Bothma

9 min

tutorial

RStudio Tutorial

Saiba o que é o RStudio e como instalá-lo e começar a usá-lo
Elena Kosourova 's photo

Elena Kosourova

17 min

See MoreSee More