Introdução ao Shell Script - Linux - Rodrigo Barreto
Introdução ao Shell Script – Linux
Esse material, em desenvolvimento, é voltado para pessoas que estão no nível inicial de desenvolvimento de scripts em Shell e também é utilizado como referências de estudos para as aulas do curso técnico ministrado no Senac São Carlos.
Script assim como sua tradução para o português – roteiro – é uma conjunto de instruções e comandos a serem executados passo a passo por um interpretador. O Shell Script nada mais é que um programa com comandos e instruções que são interpretadas pela linha de comandos do Linux, o nosso famoso terminal.
Script, como dito anteriormente, são programas de computador. Assim como um programa os scripts em Shell tem o papel fundamental de automatização de tarefas executadas em um computador Linux.
Vamos começar criando um arquivo e colocando o conteúdo a seguir para criar nosso primeiro script com o nome hello.sh.
Vamos entender as linhas, na primeira deixamos explícito que o nosso arquivo de texto faz referência a um script do bash (terminal do Linux) e na segunda linha utilizamos o comando echo para escrever na tela o conteúdo Hello World.
Para executar esse primeiro script podemos utilizar o comando no terminal:
Ou então colocando permissões – veja aqui publicação sobre esse tema – de execução para esse arquivo e executando-o pelo terminal da seguinte forma:
Combinando alguns comandos em um Script
Os scripts em shell executam comandos do Linux e isso por si só já pode nos ajudar a automatizar tarefas se pensarmos em uma lista rotineira de comandos a serem executados para uma determinada tarefa. Vamos criar nosso segundo script com uma lista de comandos:
echo "Data e hora: "
echo "Usuário atual: "
echo "Diretório atual: "
Com esse script executamos algumas vezes o comando echo para exibir algum conteúdo na tela do terminal, em seguida foi executados alguns comandos no Linux:
date – exibe na tela a data e hora
whoami – exibe na tela o usuário atual
pwd – exibe na tela o caminho atual
O conceito de variáveis é muito difundido em programação. Variável é uma posição da memória previamente identificada para armazenar alguma informação (número, texto, data, dados em geral) de um programa em tempo de execução.
Essa é uma definição um tanto técnica então, tentando simplificar, uma variável pode ser considerada como uma caixinha que iremos utilizar para armazenar um dado do nosso programa durante a execução desse. Quando for necessário acessar esse dado apenas chamamos o nome da nossa caixinha.
Vamos agora criar nosso script para utilizar variáveis:
hello="Olá, tenha um bom dia!"
user="Barreto"
echo "Usuário: $user"
echo "Número: $number"
Com esse script definimos três variáveis, duas de texto e uma com número. Sempre que precisamos chamar uma variável dentro do nosso script é necessário que o carácter $ preceda o nome dessa variável assim como no exemplo echo $user onde escrevemos na tela o conteúdo da variável user.
Combinação de comandos e variáveis
Um script de exemplo para a utilização de variáveis e comandos do Linux é o seguinte:
echo "*******Diretórios e Arquivos*******"
echo "Digite o nome do diretório a ser criado"
echo "Digite o nome do arquivo a ser criado dentro de $dir"
Nesse script utilizamos o comando read para fazer a leitura do que é digitado no teclado e armazena na variável seguida do nome read.
Através dos script shell podemos realizar operações matemáticas básicas e os operadores (carácter) para executar essas operações são como em outras linguagens de programação:
echo "Digite o primeiro número:"
echo "Digite o segundo número:"
let soma=$num1 + $num2
let sub=$num1 - $num2
let mult=$num1 * $num2
let div=$num1 / $num2
echo "Resultado da soma: $soma"
echo "Resultado da subtração: $sub"
echo "Resultado da multiplicação: $mult"
echo "Resultado da divisão: $div"
Aqui, verificamos como realizar as operações básicas da matemática e para que o script realize a conta é necessário adicionar o comando let no início da linha. Tente retirar esse comando e verifique como ele vai ser comportar. Nesse caso também identificamos um problema no momento da divisão pois é necessário inserir a precisão da conta, ou seja, o script realiza a conta mas faz uma aproximação para que não haja nenhuma casa decimal. Isso vamos ver como fazer em outras publicações.
Formado em Física Computacional pela USP - São Carlos com pós-graduação em Desenvolvimento de Sistemas para Dispositivos Móveis pelo IFSP - São Carlos. Tem experiência em desenvolvimento há mais de 10 anos. Atualmente é docente no Senac em São Carlos nas áreas de redes, desenvolvimento e jogos digitais.