Introdução ao Shell Script – Linux

Introdução

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.


O que é ?

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.


Para que serve?

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.


Hello World

Vamos começar criando um arquivo e colocando o conteúdo a seguir para criar nosso primeiro script com o nome hello.sh.

#!/bin/bash
echo "Hello World"

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:

$ bash hello.sh

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:

$ ./hello.sh


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:

#!/bin/bash
echo "************************************"
echo "Data e hora: "
date
echo "************************************"
echo "Usuário atual: "
whoami
echo "************************************"
echo "Diretório atual: "
pwd

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

Variáveis

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:

#!/bin/bash
hello="Olá, tenha um bom dia!"
echo $hello
user="Barreto"
echo "Usuário: $user"
number=50
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:

#!/bin/bash
echo "***********************************"
echo "*******Diretórios e Arquivos*******"
echo "***********************************"
echo
echo "Digite o nome do diretório a ser criado"
read dir
echo "Digite o nome do arquivo a ser criado dentro de $dir"
read file
mkdir $dir
cd $dir
touch $file

Nesse script utilizamos o comando read para fazer a leitura do que é digitado no teclado e armazena na variável seguida do nome read.


Operações básicas

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:

  • soma +
  • subtração –
  • multiplicação *
  • divisão /

#!/bin/bash
echo "Digite o primeiro número:"
read num1
echo "Digite o segundo número:"
read num2
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.