Shell Script 2 - Estruturas de Controle
Se você já leu o básico sobre Shell Script agora veremos as estruturas de controle do Shell Script.
Não vou explicar muito, apenas digite e veja o que acontece ;)
seq 10
seq 2 2 10
mkdir pasta; touch pasta/arquivo.txt; cd pasta; ls
if grep mm /etc/passwd; then echo 'ok'; else echo 'não'; fi
if who | grep regis; then echo regis está logado; else echo regis não está logado; fi
A seguir, usaremos o comando test
para verificar se um arquivo existe.
# Verifica se o arquivo existe
if test -e $1; then cat $1; else echo Arquivo não encontrado; fi
Repare, no exemplo a seguir, que podemos substituir o comando test
por um par de colchetes [ ]
.
# Verifica se uma pasta existe
if [ ! -d pasta42 ]; then echo 'Pasta não existe'; else echo 'Pasta já existe, veja:'; ls; fi
n1=1
n2=2
if [ $n1 -eq $n2 ]
then
echo "n1 é igual a n2"
else
echo "n1 é diferente de n2"
fi
n1=1
n2=2
if [ $n1 -ne $n2 ]
then
echo "n1 é diferente de n2"
else
echo "n1 é igual a n2"
fi
c=0; while [[ c -le 10 ]]; do echo "$c"; (( c++ )); sleep 0.5; done
Fibonacci Series
#!/bin/bash
c=0
a=1
b=1
read -p "Enter limit of fibonacci Series:" n
echo -n "$a "
echo -n "$b "
#Fibonacci series logic
while((c<n))
do
c=$((a+b))
echo -n "$c "
a=$b
b=$c
done
echo -e "\n"
$((a+b))
significa uma expansão aritmética.
For
for i in $(seq 10); do echo "$i"; sleep 0.5; done
itens="Um Dois Três Quatro Cinco"
for item in $itens; do echo $item; done
for ((i=1; i<=9; i++))
do
echo -n "$i "
done
echo ""
Executando uma ação n vezes
for i in $(seq 10); do touch file$i.txt; done
Entrada de dados
read -p "Digite seu nome: " nome; echo "Bem-vindo $nome"
Função
#!/bin/bash
soma(){
a=$1
b=$2
echo `expr $a + $b`
}
read -p 'Digite um número: ' x
read -p 'Digite outro número: ' y
soma $x $y
Leia mais em Shell Script 3 - Vários exemplos