Fala aí, Padawan! Neste artigo vamos abordar o básico de Shellscript. Ele é usado para automatizar tarefas em sistemas Linux, aparece com frequência em provas e está presente no dia a dia de profissionais que trabalham com infraestrutura e suporte. Neste artigo, vamos entender como funciona um script, conhecer sua estrutura básica e explorar a sintaxe da linguagem Bash com exemplos simples, voltados ao que normalmente se cobra em concursos públicos.
O que é um Shell Script
Um Shell Script é um arquivo de texto que contém comandos que normalmente seriam digitados diretamente no terminal. Ele permite agrupar esses comandos para que sejam executados de maneira automática e sequencial, facilitando tarefas rotineiras como cópia de arquivos, limpeza de diretórios, execução de programas, entre outras.
Estrutura básica de um script
Todo script inicia com uma linha chamada shebang, que indica qual interpretador deve ser usado para executar os comandos do arquivo. No caso do Bash, essa linha é
#!/bin/bash
O uso do shebang garante que o sistema saiba qual programa usar para interpretar o conteúdo do script.
Primeiro script: Olá, mundoUm exemplo simples de script pode ser feito com apenas duas linhas:

A primeira linha define o interpretador Bash. A segunda linha utiliza o comando echo, responsável por exibir uma mensagem no terminal. Para executar esse script, basta salvá-lo como meuscript.sh, usar o comando chmod +x meuscript.sh para torná-lo executável, e depois rodar com ./meuscript.sh.
Usando variáveis
Variáveis são utilizadas para armazenar informações temporárias. No Bash, você declara uma variável sem espaços ao redor do sinal de igual. Por exemplo:

Operadores relacionais em Shell Script
Os operadores relacionais são utilizados em estruturas condicionais para comparar valores, eles são comumente usados dentro de instruções como estruturas de controle e de repetição. A tabela a seguir apresenta os principais operadores relacionais utilizados em comparações numéricas.
Operador | Significado | Exemplo |
-eq | Igual a | [ 5 -eq 5 ] |
-ne | Diferente de | [ 5 -ne 3 ] |
-gt | Maior que | [ 7 -gt 3 ] |
-lt | Menor que | [ 2 -lt 5 ] |
-ge | Maior ou igual a | [ 5 -ge 5 ] |
-le | Menor ou igual a | [ 3 -le 4 ] |
Tomando decisões com if
Scripts em Bash podem tomar decisões com a estrutura if. Veja um exemplo:

Repetições com for
Com o laço for, é possível repetir comandos de maneira simples, utilizando uma cadeia de elementos separados por espaço:

Repetições com while
Outra forma de repetição é com while, ideal quando a condição de parada depende de variáveis:

Comandos úteis em scripts
Comandos úteis em scripts:
- ls: lista arquivos.
- cd: muda de diretório.
- mkdir: cria pastas.
- rm: remove arquivos.
- touch: cria arquivos vazios.
- cat: exibe conteúdo de arquivos.
- chmod: altera permissões.
Criando funções
Em Shell Script, funções são utilizadas para encapsular trechos de código que podem ser executados várias vezes. Existem diferentes formas de declarar e utilizar funções. A seguir, veremos os principais formatos com explicações práticas.
Função sem parâmetro (forma mais comum)
Este é o tipo mais simples de função. Ela executa um bloco de comandos, mas não recebe informações externas, ou seja, não há parâmetros utilizados pela função:

A função dizer_ola é definida com {} e chamada pelo nome. Não recebe argumentos e apenas imprime uma mensagem.
Função com parâmetros
Você pode passar valores para a função assim como faz com scripts. Dentro da função, usa-se $1, $2, etc., para acessar os parâmetros:

O valor “Carlos” é passado como argumento e capturado por $1, exibido dentro da função. Se houvesse outro parâmetro, seria capturado por $2, e assim por diante.
Função usando a palavra-chave function
Outra forma válida de declarar funções no Bash é usando a palavra-chave function, embora não seja obrigatória:

O uso de function é uma opção de estilo. O comportamento é o mesmo de uma função definida com apenas o nome e chaves.
Função com retorno usando return
Você pode usar return para retornar um valor numérico (de 0 a 255), geralmente usado para indicar sucesso (0) ou erro (qualquer outro valor):

Explicação: O return 0 sinaliza sucesso e return 1 sinaliza erro. O comando $? verifica o código retornado pela função.
Conclusão
Com o conteúdo apresentado, você conheceu a estrutura fundamental de um Shell Script, aprendeu como usar variáveis, interagir com o usuário, aplicar condições, repetir comandos e criar funções. Temos mais assuntos para abordar, mas vamos deixar para um próximo artigo. E agora para não perder o costume.
VAMOS RESOLVER QUESTÕES!
(2019)IDECAN- UNIVASF- Analista de Tecnologia da Informação
A definição de variáveis é uma funcionalidade importante da linguagem de scripts BASH, presente na maioria das distribuições Linux. Assinale a alternativa que indica a maneira correta de definir uma variável em BASH.
- A) $NOME=”João da Silva“
- B) $NOME=João da Silva
- C) NOME=”João da Silva“
- D) string NOME = “João da Silva“
- E) char NOME[] = “João da Silva”
Resposta: C.
Alternativa A: Incorreta. Em Bash, o símbolo $ é utilizado apenas para acessar o valor de uma variável, e não para a sua definição. Colocar $NOME=”João da Silva” resulta em erro de sintaxe, pois o interpretador tentaria atribuir um valor a algo que já deveria ser avaliado.
Alternativa B: Incorreta. Além de usar incorretamente o símbolo $ na definição da variável, o valor João da Silva não está entre aspas. Em Bash, valores que contêm espaços precisam obrigatoriamente estar delimitados por aspas para serem interpretados como uma única string.
Alternativa C: Correta. Em Bash, variáveis são definidas apenas pelo nome, seguido imediatamente do sinal de igual =, sem espaços, e o valor, se contiver espaços, deve ser colocado entre aspas. A sintaxe NOME=”João da Silva” está de acordo com as regras da linguagem.
Alternativa D: Incorreta. A sintaxe string NOME = “João da Silva” corresponde a linguagens como C, C++ ou Java, e não é reconhecida em Bash. Bash não exige nem permite declaração explícita de tipo antes do nome da variável, tampouco aceita espaços em torno do sinal de igual.
Alternativa E: Incorreta. A estrutura char NOME[] = “João da Silva” é típica da linguagem C para declaração de vetores de caracteres. Bash não trabalha com tipos de dados explícitos como arrays de caracteres dessa forma, tornando essa sintaxe inválida para definição de variáveis em shell script
(2019)VUNESP – Prefeitura de Valinhos –SP- Analista de Tecnologia da Informação -SAI
Sem a shebang, um shell script executado em um servidor Linux
- A) utilizará o shell padrão do usuário.
- B) utilizará o shell configurado em /etc/profile.
- C) não poderá receber permissões de execução.
- D) pode não ser capaz de executar o código no interpretador correto.
- E) apresentará uma lista dos shells disponíveis para que o usuário selecione em qual o script deve ser executado.
Resposta: D
Alternativa A: Incorreta. Quando um script é executado sem a shebang (#!), o sistema não garante que usará o shell padrão do usuário. Se o script for chamado diretamente (com permissões de execução), o interpretador padrão da sessão pode ser usado, mas isso é imprevisível e depende do modo como o script é invocado. Portanto, não é garantido que utilizará o shell padrão.
Alternativa B: Incorreta. O arquivo /etc/profile é um script de configuração global lido durante o login de shells interativos, mas não determina qual interpretador será usado para executar scripts. Ou seja, a execução de um script não é vinculada diretamente ao que está configurado no /etc/profile.
Alternativa C: Incorreta. A ausência da shebang não impede que um script receba permissões de execução. A permissão de execução (chmod +x) é atribuída no sistema de arquivos, independentemente do conteúdo interno do arquivo, incluindo a presença ou não da shebang.
Alternativa D: Correta. Sem a shebang, o sistema não saberá de forma explícita qual interpretador deve ser usado para executar o script. Se o conteúdo do script usar uma sintaxe que não é compatível com o shell que acabar sendo utilizado, erros podem ocorrer. Portanto, sem a shebang, o script pode não ser executado corretamente no interpretador adequado.
Alternativa E: Incorreta. O sistema operacional não apresenta uma lista de shells disponíveis para o usuário escolher durante a execução de um script. A escolha do interpretador é automática e depende da chamada do script, do contexto e das configurações de ambiente, não havendo interação direta com o usuário para essa decisão
(2023)CESGRANRIO- Transpetro- Análise de Sistemas- Infraestrutura
Linguagens de script são muito utilizadas pelos administradores de sistemas operacionais para automatizar tarefas. Uma linguagem de script amplamente utilizada no Linux é a da shell bash (Bourne Again Shell). Quando um administrador escreve um script para a shell bash, é importante deixar uma indicação padrão na primeira linha desse script informando que o interpretador a ser usado é a shell bash.
Para fazer isso, a primeira linha do script deve conter
- A) #!/bin/bash
- B) #/bin/bash
- C) run /bin/bash
- D) exec /bin/bash
- E) use /bin/bash
Resposta: A
Alternativa A: Correta. A indicação de qual interpretador deve ser usado é feita utilizando o símbolo #! (chamado de shebang), seguido do caminho absoluto do interpretador. Para scripts que devem ser executados no Bash, a forma correta é #!/bin/bash. O #! instrui o sistema operacional a usar o Bash localizado em /bin/bash para interpretar o script.
Alternativa B: Incorreta. A linha #/bin/bash está errada porque falta o ponto de exclamação (!) após o símbolo de cerquilha (#). Sem o !, essa linha será interpretada simplesmente como um comentário e não indicará o interpretador ao sistema.
Alternativa C: Incorreta. A palavra run não é utilizada em scripts para definir o interpretador. run poderia ser um comando dentro do corpo do script, mas não serve como uma instrução especial para o sistema operacional na primeira linha do arquivo.
Alternativa D: Incorreta. A palavra exec é um comando usado para substituir o processo corrente por outro, mas não é apropriada para ser usada na primeira linha para definir o interpretador de um script. Usar exec /bin/bash no início alteraria a execução, mas não configura corretamente o interpretador do script.
Alternativa E: Incorreta. A palavra use não é uma diretiva reconhecida em Bash ou em scripts de shell para indicar o interpretador. Não existe use /bin/bash como forma válida de definir o shell a ser utilizado para interpretar um script.
Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil? Clique nos links abaixo:
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos. Clique no link abaixo e inscreva-se:
Participe da conversa