Sei sulla pagina 1di 36

16/01/14

Introdução ao Shell Script no Linux

LOGIN
LOGIN

LOGIN

Buscar

comentários

Script no Linux LOGIN post favorito Buscar comentários Introdução ao Shell Script no Linux Veja neste

Introdução ao Shell Script no Linux

Veja neste artigo como criar e utilizar Shell Scripts no sistema operacional Linux. Serão apresentados os principais conceitos e a sintaxe básica da linguagem utilizada para este fim.

23 15 Curtir 19 Gostei (1) (1)
23
15 Curtir
19
Gostei (1)
(1)

Introdução

Muitas vezes é necessário fazer um mesmo comando ou conjunto de comandos para um determinado fim no terminal linux, com o passar do tempo isso pode acabar se tornando cansativo e até estressante. Para facilitar essa situação e aliviar ações

16/01/14

Introdução ao Shell Script no Linux

repetitivas podemos utilizar o shell Scripts.

De maneira grosseira um Shell Scritp nada mais é que uma sequência de comandos do próprio Linux que são executados em uma determinada sequência para um determinado fim.

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:

Listagem 1: Criação do shell1.sh

touchshell1.sh

Exemplo: Listagem 1: Criação do shell1.sh touchshell1.sh

16/01/14

Introdução ao Shell Script no Linux

Figura 1: Criação do arquivo shell1.sh

Onde:

no Linux Figura 1: Criação do arquivo shell1.sh Onde: touch - Comando utilizado para criar um

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 shell script é preciso atribuir ao mesmo o direito de execução, para isso é necessário usar o comando chmod com a opção +x.

Exemplo:

Listagem 2: Adição do direito de execução ao arquivo shell1.sh

chmod+xshel11.sh

direito de execução ao arquivo shell1.sh chmod+xshel11.sh Figura 2: Atribuindo direito de execução ao arquivo

Figura 2: Atribuindo direito de execução ao arquivo shell1.sh

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.

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 3: Visão do arquivo shell1.sh antes da atribuição

Figura 3: Visão do arquivo shell1.sh antes da atribuição do direito de execução para o arquivo shell1.sh

Abaixo é possível ver a imagem após execução do chmod.

Abaixo é possível ver a imagem após execução do chmod.

16/01/14

Introdução ao Shell Script no Linux

Figura 4: Visualização do arquivo shell1.sh após a atribuição do direito de execução para o mesmo

1.3. Abra o arquivo recém criado para editá-lo

Neste artigo foi utilizado o editor de texto vim que pode ser acessado através terminal, porém fica a critério do leitor utilizar qualquer editor gráfico como gedit para alterar o arquivo recém criado.

Exemplo:

Listagem 3: Abertura do arquivo shell1.sh para edição

vimshell1.sh

3: Abertura do arquivo shell1.sh para edição vimshell1.sh Figura 5: Figura demonstrando a sintaxe do comando

Figura 5: Figura demonstrando a sintaxe do comando vim para edição do arquivo

shell1.sh

A primeira linha escrita do shell script é utilizada para informar qual modelo de shell será utilizado para criar o shell script (ksh, sh, bash), a linha pode ser vista abaixo:

16/01/14

Introdução ao Shell Script no Linux

Listagem 4: Visão da primeira linha shell script

#!/bin/bash

Código visto no vim:

linha shell script #!/bin/bash Código visto no vim: Figura 6: Visão do trecho de código inicial

Figura 6: Visão do trecho de código inicial no terminal

Abaixo é possível ver o código quando editado pelo gedit.

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 7: Visão do código do shell script através

Figura 7: Visão do código do shell script através do gedit

Esta linha especifica qual shell será responsável por executar o shell scritp que será criado, neste exemplo o shell responsável será o bash que está localizado na pasta /bin.

Após a linha que contém o código refrente ao tipo de shell é 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:

Listagem 5: Shell Script que abre a gaveta do leitor de cd

#!/bin/bash

echo"Abrindogaveta

eject

"

16/01/14

Introdução ao Shell Script no Linux

sleep1

echo"Agavetaseráfechada

sleep1

eject-t

"

sleep1 echo"Agavetaseráfechada sleep1 eject-t " Figura 8: Figura com o conteúdo do shell script shell1.sh

Figura 8: Figura com o conteúdo do shell script shell1.sh

Onde:

echo - Comando responsável por exibir uma mensagem na tela.8: Figura com o conteúdo do shell script shell1.sh Onde: eject - Comando responsável por fazer

eject - Comando responsável por fazer a baia do leitor de cd ejectar.echo - Comando responsável por exibir uma mensagem na tela. eject -t - Comando reponsável por

eject -t - Comando reponsável por fazer a baia do leito de cd voltar para seu estado inicial.responsável por fazer a baia do leitor de cd ejectar. sleep - Comando que pausa um

sleep - Comando que pausa um o terminal por um tempo em segundos pré determinado.fazer a baia do leito de cd voltar para seu estado inicial. 1.3.1 Inserão de comentários

1.3.1 Inserão de comentários

16/01/14

Introdução ao Shell Script no Linux

Os comentários são de suma importância para deixar informações para manipulação futura do shell script. 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:

Sintaxe: #comentário

Onde:

linha que você deseja comentar: Sintaxe: #comentário Onde: comentário – Comentário em si. Exemplo: Listagem 6:

comentário – Comentário em si.

Exemplo:

Listagem 6: Shell Script com comentário

#!/bin/bash

#Eusouumcomentário.

echo“Existeumcomentárionesteshellscript”

echo“Existeumcomentárionesteshellscript” Figura 10: Figura que demonstra a execução do shell1.sh

Figura 10: Figura que demonstra a execução do shell1.sh

16/01/14

Introdução ao Shell Script no Linux

Caso o shell1.sh esteja em diretório diferente do qual você se localiza, execute shell script da seguinte maneira:

Sintaxe: /

/diretorio/shel1.sh

Onde:

/
/

/diretorio

- diretório no qual o shell está localizado.

Exemplo: /tmp/maguscode/shel1.sh

o shell está localizado. Exemplo: /tmp/maguscode/shel1.sh Figura 11: Execução do shell1.sh a partir de um

Figura 11: Execução do shell1.sh a partir de um diretório diferente

2. Utilizando Váriaveis

A utilização de variáveis em shellscript é muito importante como em qualquer linguagem de programação. Para criar uma variável em shell script é bem simples, basta seguir a sintaxe abaixo:

Sintaxe: nome_variável=VALOR

Onde:

16/01/14

Introdução ao Shell Script no Linux

nome_variavel – Nome da variável.16/01/14 Introdução ao Shell Script no Linux VALOR – Valor atribuído a variável criada. Exemplos: Neste

VALOR – Valor atribuído a variável criada.Shell Script no Linux nome_variavel – Nome da variável. Exemplos: Neste exemplo foram criadas as variáveis

Exemplos:

Neste exemplo foram criadas as variáveis “cor_casa” que tem como atributo o valor “verde”, e a variável “numero” que tem como atributo o valor 32.

Listagem 7: Criação de variável

cor_casa=verde

numero=32

Para se utilizar a variável basta utilizar o $ (Cifrão) na frente do nome da variável, como pode ser visto no código do shell script baixo.

Listagem 8: Exemplo de shell script que exibe conteúdo da variável na tela

#!/bin/bash

cor_casa=VERDE

echo“Acordacasaé$cor_casa”

exit

A saída será: A cor da casa é VERDE

2.1 Utilizando saída de comando como valor de variável

Para direcionar a saída de um determinado comando para uma variável, basta escolher uma das seguintes sintaxes:

Sintaxe: nome_variavel=$(comando) ou nome_variavel=`comando`

Onde:

nome_variavel – Nome da variável que receberá a saída do comando.nome_variavel=$(comando) ou nome_variavel=`comando` Onde:

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux comando – Comando a ser executado. No exemplo será

comando – Comando a ser executado.

No exemplo será criado um shell script chamado total.sh que tem como objetivo contar o total de linhas (arquivos) que um diretório tem.

Listagem 9: Script shell que conta o total de arquivos em um diretório

#!/bin/bash

total_linhas=$(ls|wc-l)

echo“Existe$total_linhasnestediretório.”

Esse script shell exibe na tela a quantidade de arquivos existe em um determinado diretório.

quantidade de arquivos existe em um determinado diretório. Figura 12: Demonstração do total de arquivos do

Figura 12: Demonstração do total de arquivos do diretório /tmp

Saída do script executado:

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 13: Saída da execução do shell script total.sh

Figura 13: Saída da execução do shell script total.sh

Figura 13: Saída da execução do shell script total.sh

2.2 Capturar valores do teclado

Uma maneira de capturar o que um determinado usuário digita é atravez do comando read.

Sintaxe: read $variavel;

Onde:

é atravez do comando read. Sintaxe: read $variavel; Onde: $variavel – Nome da variável que recebera

$variavel – Nome da variável que recebera o valor do teclado.

Será feito shell script chamado qualnome.sh no qual o usuário digita um nome e o mesmo é exibido na tela.

Listagem 10: Exemplo utilizando captura do valor da variável através do teclado

#!/bin/bash

echoQualseunome:

16/01/14

Introdução ao Shell Script no Linux

readnome;

echo“Bemvindo$nome”

exit

Shell Script no Linux readnome; echo“Bemvindo$nome” exit Figura 14: Nome do usuário digitado durante a execução

Figura 14: Nome do usuário digitado durante a execução do shellscript

3. Tomada decisão

3.1 Comando if

O comando if é um comando para tomada de decisão. O mesmo realiza uma

determinada ação quando um requisito é atendido.

Sintaxe:

if [ condição ]; then

ação

fi

16/01/14

Introdução ao Shell Script no Linux

Onde:

condição - Condição para continuar no laço16/01/14 Introdução ao Shell Script no Linux Onde: ação - Comandos ou comportamentos que serão executados

ação - Comandos ou comportamentos que serão executados dentro do laçoLinux Onde: condição - Condição para continuar no laço Será criado um exemplo no qual o

Será criado um exemplo no qual o usuário digitará um valor na tela e só sera exibida uma mensagem na tela caso esse valor seja igual ao numero 3.

Listagem 11: Utilização do comando if

#!/bin/bash

echo-n"Digiteumalgo:"

readvalor_digitado

if["$valor_digitado"-eq"3"];

then

echoVocêdigitouonumero3

fi

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 15: Demonstração do código com o comando condicional

Figura 15: Demonstração do código com o comando condicional if no shell script

do código com o comando condicional if no shell script Figura 16: Demonstração da saida do

Figura 16: Demonstração da saida do shell script que contém um comando condicional if

16/01/14

Introdução ao Shell Script no Linux

3.1 Comando if/else

O comando if/else é um comando para tomada de decisão. O if faz com que uma

determinada ação seja executada quando um requisito é atendido, caso contratrio será utilizado o que estiver no bloco do comando else.

Sintaxe:

if [ condição ]; then

ação

fi

Onde:

condição - Condição para continuar no laçoelse. Sintaxe: if [ condição ]; then ação fi Onde: ação - Comandos ou comportamento que

ação - Comandos ou comportamento que será executado dentro do laço.fi Onde: condição - Condição para continuar no laço Será criado um exemplo no qual o

Será criado um exemplo no qual o usuário digitará um valor na tela e só será exibida uma mensagem na tela caso esse valor seja igual ao numero 3.

Listagem 12: Utilização do comando if/else

#!/bin/bash

echo-n"Digiteumalgo:"

readvalor_digitado

if[“$valor_digitado”-eq“3”];

then

echo“Vocêdigitouonumero3”

else

echo"Vocêdigitouocaracter$valor_digitado";

fi

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 17: Demonstração do código com o comando condicional

Figura 17: Demonstração do código com o comando condicional if no shell script

do código com o comando condicional if no shell script Figura 18: Demonstração da saída do

Figura 18: Demonstração da saída do shell script que contém um comando condicional if

16/01/14

Introdução ao Shell Script no Linux

3.3. Comando elif

O comando elif é um comando para tomada de decisão. O comando elif depende do

comando if e o mesmo funciona de maneira similar ao else/if, porém o elfi também tem uma condição, que será executada caso um condição seja tendida.

Sintaxe:

if [ condição ]; then

ação elif [condição]; then ação elif [condição]; then ação fi

Onde:

condição - Condição para continuar no laçothen ação elif [condição]; then ação fi Onde: ação - Comandos ou comportamento que será executado

ação - Comandos ou comportamento que será executado dentro do laço.fi Onde: condição - Condição para continuar no laço Será criado um exemplo no qual o

Será criado um exemplo no qual o usuário digitará um valor na tela e só será exibida uma mensagem na tela caso esse valor seja igual ao numero 3,4 ou 5.

Listagem 13: Utilização do comando if/elif

#!/bin/bash

echo-n"Digiteumalgo:"

readvalor_digitado

if[“$valor_digitado”-eq“3”];

then

echo"Vocêdigitouonumero3"

elif[“$valor_digitado”-eq“4”];then

echo"Vocêdigitouonumero4"

elif[“$valor_digitado”-eq“5”];then

16/01/14

Introdução ao Shell Script no Linux

echo"Vocêdigitouonumero5"

else

echo“Vocênãodigitounenhumnúmeroaceito”

fi

else echo“Vocênãodigitounenhumnúmeroaceito” fi Figura 19: Demonstração do código com o comando

Figura 19: Demonstração do código com o comando condicional elif no shell script

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 20: Demonstração da saida do shell script que

Figura 20: Demonstração da saida do shell script que contém um comando condicional elif

3.4. Comando case

O comando case, assim como o if, é um comando para tomada de decisão.

Sintaxe:

case variavel in opcao1) acao1 ;;

opcao2)

acao2

;;

opacaoN)

acaoN

;;

esac

Onde:

acao1 ;; opcao2) acao2 ;; opacaoN) acaoN ;; esac Onde: variavel – Variável que será verificada.

variavel – Variável que será verificada.

16/01/14

Introdução ao Shell Script no Linux

opcao1/2/N – Possíveis estados da variavel.16/01/14 Introdução ao Shell Script no Linux acao1/2/N – Ação a ser tomada quando a opção

acao1/2/N – Ação a ser tomada quando a opção do mesmo for escolhida.no Linux opcao1/2/N – Possíveis estados da variavel. Será criado um script utilizando case que exibe

Será criado um script utilizando case que exibe uma mensagem quando é pressionada a teclada 2 e outra quando é apertada a tecla 3.

Listagem 14: Exemplo utilizando comando case

#!/bin/bash

echo"Digite1ou2"

readopcao;

case"$opcao"in

"1")

 

echo"Vocêdigitou1";

;;

"2")

 

echo"Vocêdigitou2";

esac

exit

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 21: do código com o laço for no

Figura 21: do código com o laço for no shell script

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 22: Demonstração da saida do shell script que

Figura 22: Demonstração da saida do shell script que contém um laço while

4. Laços condicionais

4.1 Laço for

O laço for é uma executa uma ação repetitivamente até que uma condição seja atendida.

Sintaxe:

for contador in limite_contador; do

16/01/14

Introdução ao Shell Script no Linux

acao

done

Onde:

contador - Variável que será utilizada no laço for.Introdução ao Shell Script no Linux acao done Onde: limite_contador - Limite que o contador poderá

limite_contador - Limite que o contador poderá atingir. Quando o limite for atingido o laço terminará.Onde: contador - Variável que será utilizada no laço for. ação - Comandos ou comportamento que

ação - Comandos ou comportamento que será executado dentro do laço.atingir. Quando o limite for atingido o laço terminará. Para exemplo o laço será criado um

Para exemplo o laço será criado um shellscript simples que exibi na tela uma mensagem 4 vezes.

Listagem 15: Utilização do laço for

#!/bin/bash

limite_contador=4

forcontadorin{1 4};

do

echo"Messagemexibida$contadorvez".

sleep1;

done

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 23: Demonstração do código com o laçofor no

Figura 23: Demonstração do código com o laçofor no shell script

Demonstração do código com o laçofor no shell script Figura 24: Demonstração da saída do shell

Figura 24: Demonstração da saída do shell script que contém um laço while

4.2 Laço while

16/01/14

Introdução ao Shell Script no Linux

O while é um tipo de laço que existe em várias linguagens de programação. O mesmo executa uma ação enquanto um requisito não é atendido.

Sintaxe:

while [ condicao ] do acao done

Onde:

condicao - Condição para continuar no laçoé atendido. Sintaxe: while [ condicao ] do acao done Onde: ação - Comandos ou comportamento

ação - Comandos ou comportamento que será executado dentro do laço.done Onde: condicao - Condição para continuar no laço Agora será criado um shell script simples

Agora será criado um shell script simples que exibi na tela uma mensagem quatro vezes.

Listagem 16: Utilização do laço while

#!/bin/bash

contador=1

while[$contador-ne4];

do

echo"Messagemexibida$contadorvez".

sleep1;

((contador=$contador+1))

done

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 26: Demonstração da saída do shell script que

Figura 26: Demonstração da saída do shell script que contém um laço while

5. Funçoes

Assim como em qualquer "linguagem de programação" o shell script proporciona a utilização de funções.

Sintaxe:

nome_funcao ()

{

funcao_2;;

}

nome_funcao_2 ()

{

acao

}

nome_funcao

Onde:

16/01/14

Introdução ao Shell Script no Linux

nome_funcao – Funcão criada.16/01/14 Introdução ao Shell Script no Linux acao – Ação a ser tomada. nome_funcao_2;; - Chamada

acao – Ação a ser tomada.ao Shell Script no Linux nome_funcao – Funcão criada. nome_funcao_2;; - Chamada da função nome_funcao_2.

nome_funcao_2;; - Chamada da função nome_funcao_2.– Funcão criada. acao – Ação a ser tomada. nome_funcao – Função que dará inico ao

nome_funcao – Função que dará inico ao shell script.tomada. nome_funcao_2;; - Chamada da função nome_funcao_2. Será criado um shell script para no qual é

Será criado um shell script para no qual é possível escolher se será feito uma tabuada do 2 ou do 3 sendo que cada uma é feita por uma função.

Listagem 17: Utilização de funções

#!/bin/bash

principal()

{

escolha=-1

while[$escolha-ne0];

do

 

echo"Escolhaumaopção"

echo"1-Fazertabuadado2";

echo"2-Fazertabuadado3";

echo"0-Sair";

echo-n":";

readescolha;

if["$escolha"-eq"1"];

then

gerarTabuada2

elif["$escolha"-eq"2"];

then

gerarTabuada3

fi

done

}

gerarTabuada3()

{

foriin{1 10};do

echo"$i*3="$i*3

16/01/14

Introdução ao Shell Script no Linux

done

}

gerarTabuada2()

{

foriin{1 10};do

echo"$i*2="$i*2

done

}

principal

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 27: Demonstração do código fonte de um shell

Figura 27: Demonstração do código fonte de um shell script com funções

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Figura 28: Demonstração da saida do shell script com

Figura 28: Demonstração da saida do shell script com funções

Conclusão

Como foi possível ver ao longo do artigo, a criação de shell script pode vir a ser muito útil para usuários de Linux, seja para pequenas funções que são feitas repetidamente todo os dias ou funções mais complexas.

repetidamente todo os dias ou funções mais complexas. Robson Fernando Gomes Programador Java. Cursando o ultimo

Programador Java. Cursando o ultimo ano de Ciência da computação da Faculdade Salesiana do Estado São Paulo no campos de Lorena - SP.

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Poste seu comentário Flavio Moraes Seu último script não
16/01/14 Introdução ao Shell Script no Linux Poste seu comentário Flavio Moraes Seu último script não
16/01/14 Introdução ao Shell Script no Linux Poste seu comentário Flavio Moraes Seu último script não
16/01/14 Introdução ao Shell Script no Linux Poste seu comentário Flavio Moraes Seu último script não
16/01/14 Introdução ao Shell Script no Linux Poste seu comentário Flavio Moraes Seu último script não
16/01/14 Introdução ao Shell Script no Linux Poste seu comentário Flavio Moraes Seu último script não
16/01/14 Introdução ao Shell Script no Linux Poste seu comentário Flavio Moraes Seu último script não

Flavio Moraes Seu último script não funciona. A correção que fiz foi testada em várias distribuições e está funcionando. A correção é essa:

#!/bin/bash

principal()

{

escolha=-1

while [ $escolha -ne 0 ]; do echo "Escolha uma opcao" echo "2 - fazer tabuada do 2"; echo "3 - fazer tabuada do 3"; echo "0 - Sair";

echo -n ": ";

read escolha;

if [ "$escolha" -eq "2" ]; then

gerarTabuada2

elif [ "$escolha" -eq "3" ]; then

gerarTabuada3

fi

done

}

gerarTabuada3()

{

for ((i=0; i<11; i++)) do

echo "$i*3=" `expr $i \* 3` done

}

gerarTabuada2()

{

for i in {1

10};

do

echo "$i*2=" `expr $i \* 2`

16/01/14

Introdução ao Shell Script no Linux

done

}

principal

[há +1 mês] - Responder

Publicidade

Mais posts

Artigo

16/01/14

Introdução ao Shell Script no Linux

16/01/14 Introdução ao Shell Script no Linux Anuncie | Loja | Publique | Assine | Fale

|

|

|

|

DevMedia Curtir 18.735 pessoas curtiram DevMedia. Plug-in social do Facebook
DevMedia
Curtir
18.735 pessoas curtiram DevMedia.
Plug-in social do Facebook

Hospedagem web por Porta 80 Web Hosting

Todos os Direitos Reservados a Web-03