Shell Scripting · 7 min read · Nov 14, 2025
Shell Scripting Parte 2: Aceitando Entradas e Realizando Aritmética no Shell
Oi! Este artigo é a segunda parte da série de tutoriais sobre shell scripting do Howtoforge. A esta altura, presumo que você tenha lido a primeira parte da série e saiba como criar um script simples e executá-lo. Na segunda parte, você aprenderá como aceitar entradas do usuário e processá-las através do shell scripting. Vamos começar!
Variáveis no Linux
Assim como em linguagens de programação, o shell do Linux tem a capacidade de armazenar dados em variáveis. Uma variável é um contêiner que armazena temporariamente dados que serão processados através de uma linguagem de programação. Existem dois tipos de variáveis no Linux: as variáveis de ambiente e as variáveis de shell.
Variáveis de Ambiente
As variáveis de ambiente são as variáveis padrão no Linux e são usadas para passar informações entre processos no shell. As variáveis de ambiente são sensíveis a maiúsculas e minúsculas e devem sempre ser escritas em letras maiúsculas para serem acessadas.
A tabela abaixo mostra as variáveis de ambiente comuns no shell do Linux:
| Nome da variável | Uso |
| BASH | Armazena o caminho completo do interpretador de comandos para scripts Bash |
| BASH_VERSION | Armazena a versão do bash da máquina atualmente utilizada |
| HOME | Armazena o caminho relativo do diretório home. |
| LOGNAME | Armazena o nome da conta do usuário atualmente logado |
| OSTYPE | Armazena uma string que descreve o sistema operacional atual da máquina utilizada |
| PATH | Armazena um caminho absoluto separado por dois pontos dos arquivos executáveis no Linux |
| PWD | Armazena o diretório de trabalho atual do shell |
| SHELL | Armazena o shell de linha de comando preferido |
| USER | Funciona de forma semelhante ao LOGNAME. Armazena o nome da conta do usuário atualmente logado |
| _ | Armazena o nome do comando usado recentemente no shell |
Para exibir o valor de uma variável de ambiente, o usuário deve preceder um sinal de dólar ($) à variável a ser acessada. Por exemplo, para exibir algumas informações do sistema, como o diretório de trabalho atual, o usuário logado e o tipo de sistema operacional usando echo, usamos:
#!/bin/bash
echo $PWD
echo $LOGNAME
echo $OSTYPEO resultado é:

Para obter a lista completa de variáveis de ambiente no Linux, use o comando env.
Mudando valores das variáveis de ambiente
Para fornecer flexibilidade ao sistema, essas variáveis de ambiente podem ser manipuladas. Para definir um valor a uma variável de ambiente, use uma expressão de atribuição (sinal de igual).
Exemplo:
#!/bin/bash
echo $USER
USER="novo usuário"
echo $USERO resultado do script é:

Quando você executa o script, a princípio, o $USER na linha echo $USER mostra o valor da variável USER. Ao usar um operador de atribuição (=), a variável USER muda seu valor. No entanto, se o usuário atribuir valores desconhecidos a uma variável de ambiente, o shell criará outra variável de shell semelhante à variável de ambiente no contexto local do script, mas não afetará o comportamento de outros aplicativos. Isso significa que, uma vez que nosso script seja fechado, a variável USER manterá seu valor padrão.
Note que em nosso exemplo anterior, omitimos o sinal de dólar ($) no nome da variável ao manipular valores das variáveis de ambiente, como na linha USER=”novo usuário”. Além disso, ao usar o operador de atribuição, não deve haver espaço entre o USER e o sinal de igual. Adicionar um espaço entre eles cria um erro.
Variáveis de Shell
O shell também permite que o usuário declare variáveis. Assim como no PHP, para declarar uma variável em scripts de shell, o usuário não precisa se preocupar em declarar seu tipo de dado; o interpretador detectará automaticamente o tipo de dado da variável com base nos dados que o usuário armazena nela durante a execução.
Regras para nomear variáveis de shell
Assim como em qualquer linguagem de programação, existem regras para nomear variáveis de shell. O seguinte resume as regras:
- Os nomes das variáveis devem começar com uma letra ou um sublinhado.
- Devem conter apenas caracteres alfanuméricos ou um sublinhado.
- As variáveis são sensíveis a maiúsculas e minúsculas, portanto, as variáveis path, PATH e Path são diferentes.
Para provar essa regra, criaremos um script simples abaixo:
#!/bin/bash
12abc=10
abc#*=10
_abc=10
_ABC=2
echo $12abc $abc#* $_abc $_ABCAs linhas 2 e 3 retornam um erro “comando não encontrado” porque a variável 12abc começa com um caractere numérico e a variável abc#* contém caracteres ilegais. Também provamos que _abc e _ABC são variáveis diferentes e que a linha _ABC=2 não substitui o valor de _abc.

Atribuindo valores a variáveis de shell usando o comando read:
read é um comando que permite aceitar entradas do usuário. A sintaxe para usar o comando read é:
read Por exemplo, criaremos um script que permitirá que um usuário insira seu primeiro e último nome e os exiba. Para informar ao usuário o que fazer, mostramos um prompt ao usuário com o comando echo.
#!/bin/bash
echo "Seu primeiro nome: "
read fname
echo "Seu último nome:"
read lname
echo "Olá $fname $lname ! Estou aprendendo como criar scripts de shell."O resultado é:

Por favor, note que, assim como em nosso exemplo anterior, não precisamos declarar uma variável para usá-la. O interpretador também cria automaticamente a variável que é usada no comando read. No entanto, no exemplo, usamos repetidamente o comando echo para criar um prompt para o usuário. O comando read também tem a capacidade de criar um prompt enquanto aceita entradas do usuário. A sintaxe para usar um prompt no comando read é:
read -p "Seu prompt: " Para simplificar nosso código anterior, podemos reestruturar o código para:
#!/bin/bash
read -p "Seu primeiro nome: " fname
read -p "Seu último nome: " lname
echo "Olá $fname $lname ! Estou aprendendo como criar scripts de shell."Outro benefício do comando read é que o prompt de comando aparece logo após o texto e não na linha abaixo.

O comando read também pode ser usado para aceitar senhas. Ao contrário de entradas comuns, as senhas são mascaradas para fornecer segurança. A sintaxe para aceitar uma senha é:
read -s -p "seu prompt" Realizando aritméticas simples usando o shell
Além de aceitar entradas e exibir saídas, o shell bash também possui uma opção de aritmética embutida. A tabela abaixo resume os operadores aritméticos embutidos do shell Bash.
| Operador | Descrição | Sintaxe | Uso |
| + | Adição | a=$((b+c)) | Adiciona o valor de b e c e armazena em a |
| - | Subtração | a=$((b-c)) | Subtrai o valor de c de b e armazena em a |
| * | Multiplicação | a=$((b*c)) | Multiplica o valor de b e c e armazena em a |
| / | Divisão | a=$((b/c)) | Divide o valor de b por c e armazena em a |
| % | Módulo | a=$((b%c)) | Realiza a divisão módulo de b e c e armazena em a |
| ++ | Pré-incremento | $((++aa)) | Incrementa o valor da variável a imediatamente |
| ++ | Pós-incremento | $((a++)) | Incrementa o valor da variável a e reflete as mudanças na próxima linha |
| – | Pré-decremento | $((–a)) | Decrementa o valor da variável a imediatamente |
| – | Pós-decremento | $((a–)) | Decrementa o valor da variável a e reflete as mudanças na próxima linha |
| Exponenciação | $((a2)) | Eleva o valor de a à potência de 2 | |
| += | Mais igual | $((a+=b)) | Adiciona o valor de a e b e armazena em a |
| -= | Menos igual | $((a-=b)) | Subtrai o valor de b de a e armazena em a |
| *= | Vezes igual | $((a*=b)) | Multiplica o valor de a e b e armazena em a |
| /= | Barra igual | $((a/=b)) | Divide o valor de a por b e armazena em a |
| %= | Mód-equal | $((a%=b)) | Realiza a divisão módulo entre a e b e armazena em a |
Note que toda vez que você realiza uma instrução aritmética, todas as nossas variáveis devem estar envolvidas com um sinal de dólar e parênteses duplos. Ao fazer isso, o interpretador trata os valores de nossas variáveis como números inteiros. Sem isso, o interpretador trata os valores da variável como uma string. Para ter um exemplo, veja o script abaixo:
#!/bin/bash
read -p "Digite int1: " a
read -p "Digite int2: " b
echo $((a+b))
c=$a+$b
echo $cQuando executamos nosso exemplo, a linha $((a+b)) adiciona os valores do usuário que estão armazenados nas variáveis a e b, respectivamente, enquanto c=$a+$b trata as variáveis a e b como strings.

Conclusão
Cobrimos como aceitar entradas e armazená-las em uma variável e como realizar operações aritméticas em scripts de shell bash. Na próxima parte, apresentaremos estruturas de controle e, particularmente, a estrutura de decisão.
Referências:
The Linux Information Project. (2007). Recuperado em 29 de abril de 2015, de Linfo.org: http://www.linfo.org/
Cooper, M. (n.d.). Advanced Bash Scripting Guide. Recuperado em 29 de abril de 2015, de http://www.tldp.org/LDP/abs/html/
Variáveis de Ambiente. (n.d.). Recuperado em 29 de abril de 2015, de Documentação do Ubuntu: https://help.ubuntu.com/community/EnvironmentVariables
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.