Introdução
Uma maneira de facilitar os serviços repetitivos que é feito sempre por determinados períodos de tempo no Linux é criar Shell Scripts.
De grosso modo Shell Script nada mais é que uma sequência de comandos do próprio Linux que são executados.
1. Criando um shell script
Para criar um shell script é necessário seguir alguns passos:
1.1. Crie um arquivo
No terminal ou modo gráfico crie um arquivo que possa ser editado para que se torne o primeiro shell script a ser criado.
Exemplo:
touch shel1.sh
Onde:
touch - Comando utilizado para criar um arquivo vazio.
1.2. Dê direito de execução para o arquivo criado
Para que seja possível executar o um shell script é necessário atribuir ao mesmo direito de execução, para isso é necessário usar o comando chmod.
Exemplo:
chmod a+x shel1.sh
Neste exemplo nosso arquivo poderá ser executado por qualquer usuário do sistema. Antes de atribuir o direito de execução o arquivo era visto pelo terminal da cor padrão (neste caso preto), com o direito de execução agora passou a ser verde.
Abaixo é possivel ver a imagem após execução do chmod.
1.3. Abra o arquivo recém criado para edita-lo
Neste exemplo será utilizado o editor de teXto vi que pode ser utilizado no terminal, mas também pode ser utilizado qualquer editor grafico como gedit para altera o arquivo recém criado.
Exemplo:
vi shel1.sh
Na primeira linha de um shell scrit é necessário colocar uma linha de código que diz qual shell será utilizado (ksh, sh, bash), a linha pode ser vista abaixo:
#!/bin/bash
Código visto no vi.
img31.png
Código visto no gedit
Esta linha especifica qual shell será responsável por executar o shell scritp que será criado, neste exemplo o shell responsavel será o bash que está localizado na pasta /bin.
Apos a linha que contém o código acima é possível inserir os comandos desejados.
Neste exemplo vamos fazer um shell que abre a baia do leitor de cd e após 3 segundos a mesma será fechada. O código pode ser visto abaixo:
#!/bin/bash
echo "Abrindo gaveta..."
eject
sleep 2
echo "A gaveta será fechada..."
sleep 1
eject -t
Onde:
echo - Comando responsável por exibir uma mensagem na tela.
eject - Comando responsável por fazer a baia do leitor de cd ejectar.
eject -t - Comando reponsável por fazer a baia do leito de cd voltar para seu estado inicial.
sleep - Comando que pausa um o terminal por um tempo em segundos pré determinado.
1.3.1 Inserão de comentários
Para inserir um comentário em códigos de shell script basta inserir o #(cerquilha ou jogo da velha) na frente da linha que você deseja comentar, por exemplo:
#!/bin/bash
#Eu sou um comentário.
echo “Existe um comentário neste shell script”
1.4. Executando o arquivo.
Para executar o shell script recém criado basta seguir os seguintes exemplos:
Caso você esteja no mesmo diretório do arquivo basta executa-lo da seguinte maneira:
./shel1.sh
Caso o mesmo esteja em diretório diferente do que você se localiza, execute da seguinte maneira:
Sintaxe:
/.../diretorio/shel1.sh
Onde :
/.../diretorio - diretório no qual o shell está localizado.
Exemplo:
/tmp/maguscode/shel1.sh
2. Utilizando Váriaveis
Criar uma variavel em shell script é bem simples basta seguir a sintaxe abaixo:
Sintaxe:
nome_variável=VALOR
Onde:
nome_variavel – Nome da variável.
VALOR – Valor atribuido a variável criada.
Exemplos:
cor_casa=verde
numero=32
Neste exemplo serão criadas as variáveis “cor_casa” que tem como atributo o valor “verde”, também é criada a variável “numero” que tem como atributo o valor 32.
Para se utilizar a variável basta utilizar o $ (Sifrão) na frente do nome da variável, como pode ser visto no código do shell script baixo.
Exemplo:
#!/bin/bash
cor_casa=VERDE
echo “A cor da casa é $cor_casa”
A saída será:
A cor da casa é VERDE
2.1 Utilizando saída de comando como valor de variável
Caso se deseje manipular a saída de um determinado comando como valor para uma variável basta escolher uma das seguintes sintaxes:
Sintaxe:
nome_variavel=$(comando)
ou
nome_variavel=`comando`
Onde:
nome_variavel – Nome da variavel que receberá a saída do comando.
comando – Comando a ser executado.
Exemplo:
#!/bin/bash
total_linhas=$(ls | wc -l)
echo “Existe $total_linhas neste diretório.”
Esse script shell exibi na tela a quantidade de arquivos existe em um determinado diretório.
Saída do script executado.