Licensed to sandro henrique antunes ribeiro - santunesribeiro@outlook.
com
Curso Programação Shell Script - Start
Iniciando com programação Shell Script
Iniciando:
Podem também atribuir valores a variáveis de ambiente ou realizar uma determinada tarefa,
de acordo com os parâmetros de entrada
Apesar da ideia ser simples, esses scripts podem se tornar bem complexos, dependendo da
tarefa que se deseja automatizar e simplificar.
Um script pode ser uma sequência de comandos utilizados frequentemente por um
determinado usuário, no formato de um arquivo texto.
Scripts shell são úteis para automatizar uma determinada sequência de comandos
Passando parâmetros para um Shell Script
Uma característica importante nos scripts é a possibilidade de passar parâmetros através
da linha de comando
Esta habilidade permite que sejam passados dados, nomes de arquivos, diretórios, etc, para
serem manipulados pelo programa.
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:1
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
Condições em Shell Script – Trabalhando com expressões
Inteiras
Construções condicionais ou de decisão são declarações que fazem com que determinados
códigos sejam executados dependendo de uma decisão.
Estas estruturas são m uito im portante pois permitem que sejam tomadas algumas
decisões durante a execução de um script.
As expressões de teste são comparáveis a expressões de comparação de outras
linguagens de programação.
Estas expressões executam testes matemáticos, booleanos e outros testes que indicam um
estado de verdadeiro ou falso, dependendo da saída.
Para cada tipo diferente de dados, existem operadores diferentes a serem utilizados
As expressões inteiras são aquelas que utilizam os operadores disponíveis para realizar
testes com dados inteiros. ( com números )
Condições em Shell Script – Trabalhando com expressões
do tipo String
Construções condicionais ou de decisão são declarações que fazem com que determinados
códigos sejam executados dependendo de uma decisão.
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:2
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
Estas estruturas são muito importante pois permitem que sejam tomadas algumas decisões
durante a execução de um script.
As expressões de teste são comparáveis a expressões de comparação de outras
linguagens de programação.
Estas expressões executam testes matemáticos, booleanos e outros testes que
indicam um estado de verdadeiro ou falso, dependendo da saída.
Para cada tipo diferente de dados, existem operadores diferentes a serem utilizados
As expressões e strings pode fazer testes para determinar se as strings são iguais,
diferentes, de tamanho igual a zero ou valores nulos (vazias ou não inicializadas).
O bash faz a distinção entre strings de tamanho zero e vazias.
Condições em Shell Script – Trabalhando com expressões
de Arquivos
Construções condicionais ou de decisão são declarações que fazem com que determinados
códigos sejam executados dependendo de uma decisão.
Estas estruturas são m uito im portante pois permitem que sejam tomadas algumas
decisões durante a execução de um script
As expressões de teste são comparáveis a expressões de comparação de outras
linguagens de programação.
Estas expressões executam testes matemáticos, booleanos e outros testes que indicam um
estado de verdadeiro ou falso, dependendo da saída.
Para cada tipo diferente de dados, existem operadores diferentes a serem utilizados
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:3
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
As expressões que testam arquivos podem verificar algumas informações sobre um
determinado arquivo ou compará-las com um segundo arquivo.
Com o existem diversos operadores para trabalhar com arquivos, a seguir na tabela serão
apresentados apenas os mais comuns.
Condições em Shell Script – Trabalhando com expressões
Booleanas
Construções condicionais ou de decisão são declarações que fazem com que determinados
códigos sejam executados dependendo de uma decisão.
Estas estruturas são muito importante pois permitem que sejam tomadas algumas decisões
durante a execução de um script.
As expressões de teste são comparáveis a expressões de comparação de outras
linguagens de programação.
Estas expressões executam testes matemáticos, booleanos e outros testes que indicam um
estado de verdadeiro ou falso, dependendo da saída.
Para cada tipo diferente de dados, existem operadores diferentes a serem utilizados
As expressões de teste suportam os operadores booleanos AND, OR e NOT.
Veja a tabela a seguir:
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:4
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
Trabalhando com declaração “If” em Shell Script
A declaração if executa determinadas linhas de comando, dependendo de uma expressão
condicional ser verdadeira ou falsa.
A sintaxe da declaração if é mostrada a seguir:
if [comandos_de_teste]; then
comandos_consequentes;
if
if [comandos_de_teste]; then
comandos_consequentes;
else
comandos_alternativos;
fi
if [comandos_de_teste]; then
comandos_consequentes;
elif [mais_comandos_de_teste]; then
mais_comandos_consequentes;
else
comandos_alternativos;
fi
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:5
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
Trabalhando com declaração “case” em Shell Script
Outro comando de estrutura condicional muito utilizado é o case; sua sintaxe básica está
representada a seguir.
case palavra in
Padrão [|1 padrão]...) comandos;;
esac
Trabalhando com declaração “while” em Shell Script
É usada para repetir comandos até que uma dada condição seja avaliada como falsa. É
usada quando não é possível prever ou calcular quantas repetições o loop deve executar.
while expressão
do
Comandos
done
Trabalhando com declaração “for” em Shell Script
A declaração for é utilizada basicamente para repetir comandos;
Isto quer dizer que este comando pode ser utilizado para percorrer listas de palavras e
par a pr oce ss ar cada palavra em sequência.
Isto é útil porque o controle de listas gera muito trabalho; os argumentos de linha de
comandos são um bom exemplo de listas de strings.
Abaixo pode-se verificar a estrutura do comando for.
for name [ in word; ]
do
lists;
done
hora.sh
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:6
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
#!/bin/bash
HORA=`date +'%H'`
MIN=`date +'%M'`
echo "------------------------------------------- "
echo "Agora sao $HORA horas e $MIN minutos. OK?"
echo "------------------------------------------- "
meu.sh
#!/bin/bash
HR=`date +'%H'`
MIN=`date +'%M'`
MEN='Fim de Script'
echo "---------------------------------------"
echo "O nome da sua conta e: `whoami`"
echo "---------------------------------------"
echo "Agora sao $HR horas e $MIN minutos"
echo "---------------------------------------"
echo "O diretorio que voce esta agora: `pwd`"
echo "---------------------------------------"
echo "Os arquivos desse diretorio sao: `ls`"
echo "---------------------------------------"
echo $MEN
string.sh
#!/bin/bash
TEXTO='Meu texto'
# String nao nula
se [ "$TEXTO" ]; entao
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:7
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
echo "A string existe";
fim
echo "-----------------------"
if [ "$TEXTO" ]; then
echo "A string existe"
fi
echo "-----------------------"
# Verifica string tamanho zero
se [ -z "$TEXTO" ]; entao
echo "A string tem tamanho zero";
fim
echo "-----------------------"
if [ -z "$TEXTO" ]; then
echo "A string tem tamanho zero";
fi
echo "-----------------------"
# Verifica se string tem tamanho diferente de zero
se [ -n "$TEXTO" ]; entao
echo "A string tem tamanho diferente de zero";
fim
if [ -n "$TEXTO" ]; then
echo "A string tem tamanho diferente de zero";
fi
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:8
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
echo "-----------------------"
# Verifica se string e igual a outra string
se [ "$TEXTO" = "Pedro Delfino" ]; entao
echo "A string tem o mesmo valor da outra";
fim
echo "-----------------------"
if [ "$TEXTO" = "Pedro Delfino" ]; then
echo "A string tem o mesmo valor da outra";
fi
echo "-----------------------"
# Verifica se string e diferente de outra string
se [ "$TEXTO" != "Pedro Delfino" ]; entao
echo "A string e diferente da outra";
fim
if [ "$TEXTO" != "Pedro Delfino" ]; then
echo "A string e diferente da outra";
fi
inteiros.sh
#!/bin/bash
X=1
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:9
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
Y=2
# $X = $Y
#se [$X -eq $Y ]; entao
# echo "X e igual a Y";
#fim
if [$X -eq $Y ]; then
echo "X e igual a Y";
fi
echo "---------------------------------"
# $X <> $Y
#se [$X -ne $Y ]; entao
# echo "X e diferente de Y";
#fim
if [$X -ne $Y ]; then
echo "X e diferente de Y";
fi
echo "---------------------------------"
# $X >= $Y
se [$X -ge $Y ]; entao
echo "X e maior e igual a Y";
fim
if [$X -ge $Y ]; then
echo "X e maior e igual a Y";
fi
echo "---------------------------------"
# $X > $Y
se [$X -gt $Y ]; entao
echo "X e maior do que o Y";
fim
if [$X -gt $Y ]; then
echo "X e maior do que o Y";
if
echo "---------------------------------"
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:10
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
# $X <= $Y
se [$X -le $Y ]; entao
echo "X menor ou igual a Y";
fim
if [$X -le $Y ]; then
echo "X menor ou igual a Y";
fi
echo "---------------------------------"
# $X < $Y
se [$X -lt $Y ]; entao
echo "X menor do que Y";
fim
if [$X -lt $Y ]; then
echo "X menor do que Y";
if
echo "---------------------------------"
agenda.sh
#/bin/bash
grep -i $1 agenda.dat
agenda-plus.sh
#/bin/bash
echo -n "Nome a procurar:"
read NOME
echo " ----------------------"
grep -i $NOME agenda.dat
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:11
Licensed to sandro henrique antunes ribeiro -
[email protected] Curso Programação Shell Script - Start
echo " ----------------------"
boleanos.sh
#!/bin/bash
X=1
# EXPRESSAO NOT
se [ !$X = 1 ]; entao
echo "X nao e igual 1"
fim
if [ !$X = 1 ]; then
echo "X nao e igual 1"
fi
echo " ------------------------- "
# expressao com AND
se [$X] && [$X > 0]; entao
echo "OK X existe"
fim
if [$X] && [$X > 0]; then
echo "OK X existe"
fi
echo " ------------------------- "
# expressao com OR
se [$X = 1] || [$X = 0]; entao
echo "OK X existe e pode ser =1 ou =0"
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:12
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
fim
if [$X = 1] || [$X = 0]; then
echo "OK X existe e pode ser =1 ou =0"
fi
declaracao-if-1.sh
#!/bin/bash
X=$1
#$X = 1
if [ $X -eq 1 ]; then
echo "OK X = 1";
else
echo "OPA! X nao e igual a 1";
fi
declaracao-if-2.sh
#!/bin/bash
X=$1
# #X = 1
if [ $X -eq 1 ]; then
echo "Ok! X = 1";
#X <> 2
elif [ $X -ne 2 ]; then
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:13
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
echo "OPA! X direrente de 2";
else
echo "IXI! X nao e 1 e nem diferente de 2";
fi
declaracao-case-1.sh
#!/bin/bash
echo -n "Digite um numero entre 1 e 9:"
read NUMERO
case $NUMERO in
1 | 3 | 5 | 7 | 9) echo "Seu numero: $NUMERO e impar";;
2 | 4 | 6 | 8) echo "Seu numero: $NUMERO e par";;
*) echo "Eu disse um numero de 1 a 9 ... ok?";;
esac
declaracao-for-1.sh
#!/bin/bash
for i in `ls /bin`;
do
echo "Nome do arquivo: $i";
done
declaracao-for-2.sh
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:14
Licensed to sandro henrique antunes ribeiro - [email protected]
Curso Programação Shell Script - Start
#!/bin/bash
USER=`cat $HOME/bin/user.dat`
for i in $USER;
do
id $i
done
declaracao-while-1.sh
#!/bin/bash
i=0
#$i < 4
while [ $i -lt 10 ]
do
echo $i
i=$[$i+1]
done
Todososdireitosreservados:P.D.Tecnologia-
ProfissionaisLinux:https://profissionaislinux.com.br
Página:15