Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Buscar
23 15 Curtir 24
Introdução
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 1/37
18/3/2014 Introdução ao Shell Script no Linux
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.
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 shell1.sh
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 2/37
18/3/2014 Introdução ao Shell Script no Linux
Onde:
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:
chmod +x shel11.sh
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 3/37
18/3/2014 Introdução ao Shell Script no Linux
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.
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 4/37
18/3/2014 Introdução ao Shell Script no Linux
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:
vim shell1.sh
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 5/37
18/3/2014 Introdução ao Shell Script no Linux
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:
#!/bin/bash
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 6/37
18/3/2014 Introdução ao Shell Script no Linux
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 7/37
18/3/2014 Introdução ao Shell Script no Linux
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:
#!/bin/bash
eject
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 8/37
18/3/2014 Introdução ao Shell Script no Linux
sleep 1
sleep 1
eject -t
Onde:
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 9/37
18/3/2014 Introdução ao Shell Script no Linux
Sintaxe: #comentário
Onde:
Exemplo:
#!/bin/bash
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 10/37
18/3/2014 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:
Exemplo: /tmp/maguscode/shel1.sh
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:
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 11/37
18/3/2014 Introdução ao Shell Script no Linux
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.
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.
#!/bin/bash
cor_casa=VERDE
echo “A cor da casa é $cor_casa”
exit
Para direcionar a saída de um determinado comando para uma variável, basta escolher
uma das seguintes sintaxes:
Onde:
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.
#!/bin/bash
total_linhas=$(ls | wc -l)
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 13/37
18/3/2014 Introdução ao Shell Script no Linux
Onde:
Será feito shell script chamado qualnome.sh no qual o usuário digita um nome e o
mesmo é exibido na tela.
#!/bin/bash
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 14/37
18/3/2014 Introdução ao Shell Script no Linux
read nome;
exit
3. Tomada decisão
3.1 Comando if
Sintaxe:
if [ condição ]; then
ação
fi
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 15/37
18/3/2014 Introdução ao Shell Script no Linux
Onde:
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.
#!/bin/bash
read valor_digitado
then
fi
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 16/37
18/3/2014 Introdução ao Shell Script no Linux
Figura 16: Demonstração da saida do shell script que contém um comando condicional
if
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 17/37
18/3/2014 Introdução ao Shell Script no Linux
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:
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.
#!/bin/bash
read valor_digitado
then
else
fi
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 18/37
18/3/2014 Introdução ao Shell Script no Linux
Figura 18: Demonstração da saída do shell script que contém um comando condicional
if
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 19/37
18/3/2014 Introdução ao Shell Script no Linux
Sintaxe:
if [ condição ]; then
ação
elif [condição]; then
ação
elif [condição]; then
ação
fi
Onde:
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.
#!/bin/bash
read valor_digitado
then
echo "Você digitou o numero 3"
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 20/37
18/3/2014 Introdução ao Shell Script no Linux
else
echo “Você não digitou nenhum número aceito”
fi
Figura 19: Demonstração do código com o comando condicional elif no shell script
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 21/37
18/3/2014 Introdução ao Shell Script no Linux
Figura 20: Demonstração da saida do shell script que contém um comando condicional
elif
Sintaxe:
case variavel in
opcao1) acao1
;;
opcao2)
acao2
;;
opacaoN)
acaoN
;;
esac
Onde:
Será criado um script utilizando case que exibe uma mensagem quando é pressionada a
teclada 2 e outra quando é apertada a tecla 3.
#!/bin/bash
case "$opcao" in
"1")
echo "Você digitou 1";
;;
"2")
echo "Você digitou 2";
esac
exit
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 23/37
18/3/2014 Introdução ao Shell Script no Linux
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 24/37
18/3/2014 Introdução ao Shell Script no Linux
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
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 25/37
18/3/2014 Introdução ao Shell Script no Linux
acao
done
Onde:
Para exemplo o laço será criado um shellscript simples que exibi na tela uma mensagem
4 vezes.
#!/bin/bash
limite_contador=4
do
sleep 1;
done
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 26/37
18/3/2014 Introdução ao Shell Script no Linux
Figura 24: Demonstração da saída do shell script que contém um laço while
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 27/37
18/3/2014 Introdução ao Shell Script no Linux
Sintaxe:
while [ condicao ]
do
acao
done
Onde:
Agora será criado um shell script simples que exibi na tela uma mensagem quatro
vezes.
#!/bin/bash
contador=1
do
echo "Messagem exibida $contador vez".
sleep 1;
((contador=$contador+1))
done
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 28/37
18/3/2014 Introdução ao Shell Script no Linux
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:
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 29/37
18/3/2014 Introdução ao Shell Script no Linux
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.
#!/bin/bash
principal()
{
escolha=-1
while [ $escolha -ne 0 ];
do
echo "Escolha uma opção"
echo "1- Fazer tabuada do 2";
echo "2- Fazer tabuada do 3";
echo "0- Sair";
echo -n ":";
read escolha;
done
}
gerarTabuada3()
{
for i in {1..10}; do
echo "$i*3="$i*3
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 30/37
18/3/2014 Introdução ao Shell Script no Linux
done
gerarTabuada2()
{
for i in {1..10}; do
echo "$i*2="$i*2
done
principal
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 31/37
18/3/2014 Introdução ao Shell Script no Linux
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 32/37
18/3/2014 Introdução ao Shell Script no Linux
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.
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.
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 33/37
18/3/2014 Introdução ao Shell Script no Linux
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
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`
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 34/37
18/3/2014 Introdução ao Shell Script no Linux
done
}
principal
Publicidade
Serviços
Inclua um comentário
+Outros
Mais posts
Artigo
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 35/37
18/3/2014 Introdução ao Shell Script no Linux
Pocket Video
Artigo
Pocket Video
Artigo
Pocket Video
Artigo
Artigo
What is new
Artigo
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 36/37
18/3/2014 Introdução ao Shell Script no Linux
DevMedia
Curtir
http://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778 37/37