SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Shell Script
Kleber Monte
Roteiro
●
História
●
Paradigmas seguidos e características
●
Mercado
●
Sintaxe e Semântica
●
Avaliações
●
Bibliografia
2
História
●
Shell Script foi criada quando Dennis Ritchie e Ken
Thompson buscavam algo que oferecesse características
melhores do que os interpretadores de comandos usados
para interagir com o UNIX. Surge, então o Shell criado
por Stephen Bourne, conhecido como sh e foi lançado
em 1977 junto com o Unix Versão 7.
●
Outros Shells foram desenvolvidos, como o C Shell(csh),
Korn Shell(ksh), Z Shell(zsh), Bourne Again Shell(bash).
3
História
4
●
Ambiente Linux
Paradigmas seguidos e características
●
ShellScript suporta apenas o paradigma imperativo
●
Linguagem interpretada.
●
Tipagem fraca e dinâmica
5
Mercado
6
● Automação de tarefas do dia-a-dia do desenvolvedor
● Automação de processo de deployment
● Instalação e configuração de sistemas operacionais
Mercado
7
● TIOBE - 2016
Mercado
8
● Exemplos de deploy com git
#!/bin/sh
# /home/user/git_servers/meu_projeto.git/hooks/post-receive
echo "-- hooks --"
cd /home/user/meu_projeto
unset GIT_DIR
git pull origin master
sudo stop meu_projeto
sudo start meu_projeto
● Aplicação Django
Mercado
9
● Exemplos de deploy com git
#!/bin/bash -l
echo "-- hooks --"
cd /home/user/meu_projeto
unset GIT_DIR
git pull origin master
echo "-- installing gems --"
bundle install
echo "-- migrating database --"
rake db:migrate RAILS_ENV=production
echo "-- cleaning assets --"
rake assets:clean RAILS_ENV=production
echo "-- compiling assets --"
rake assets:precompile RAILS_ENV=production
echo "-- restarting server --"
touch tmp/restart.txt
● Aplicação Rails
Sintaxe e Semântica
●
Para criar um script normalmente cria-se um arquivo com
extenão .sh.
●
Para executá-lo é necessário primeirament dar permissão
para execução:
●
chmod +x <nome_do_arquivo>.sh
●
Utilize ./<nome_do_arquivo>.sh para executar seu
script no diretório que foi criado.
●
OBS.: Caso queira executar seu script em qualquer parte
do sistema mova-o para um diretório que está presente
no seu PATH, caso não tenha permissão mova-o para o
diretório $HOME. 10
Sintaxe e Semântica
●
A primeira linha de qualquer script deverá ser um
comentário especificando qual shell interpretará as linhas
subsequentes do script. Se esta linha não exisitir, o shell
padrão do SO será utilizado.
●
Ex.: #!/bin/bash
11
Sintaxe e Semântica (Entrada e Saída)
●
O comando para saída no console é o echo.
●
Exemplo:
●
echo “Hello World”
●
O comando para ler dados do teclado é o read
●
Exemplo:
●
echo “Executar script agora? [s/n]”
●
read resposta
●
Para saídas formatadas usa-se a função printf.
●
Exemplo:
●
printf “%f” $variavel
12
●
A declaração de variável é feita da seguinte forma:
●
<nomeDaVariavel>=<valor>
●
Não existe espaço entre o sinal “=”.
●
Exemplos:
●
idade=50
●
nome=”Fulano”
●
teste = “teste errado” (forma errada)
●
Todas as variáveis são globais por definição a não ser
que os comandos “local” ou “declare” sejam usados.
●
Constantes são criadas por meio da palvra reservada
readonly.
13
Sintaxe e Semântica (Variáveis e Constantes)
Sintaxe e Semântica (Comando test)
●
Comando utilizado para fazer vários tipos de verificações,
muito usado em estruturas de controle de fluxo(Ex.: if,
while)
14
Sintaxe e Semântica (Comando test)
15
Testes em variáveis
-lt Nº é menor que (LessThan)
-gt Nº é maior que (GreaterThan)
-le Nº é menor ou igual (LessEqual)
-ge Nº é maior ou igual (GreaterThan)
-eq Nº é igual (Equal)
-ne Nº é diferente (NotEqual)
= String é igual
!= String é diferente
-n String é não nula
-z String é nula
Testes em arquivos
-d É um diretório
-f É um arquivo normal
-r O arquivo tem permissão de leitura
-s
O tamanho do arquivo é maior que
zero
-w O arquivo tem permissão de escrita
-nt O arquivo é mais recente(NewerThan)
-ot O arquivo é mais antigo(OlderThan)
-ef O arquivo é o mesmo (EqualFile)
Operadores Lógicos
! Não
-a E
-o OU
Sintaxe e Semântica (controle de fluxo - if)
●
Sintaxe:
16
if <avaliação>
then
comandos
elif <avaliação>
then
comandos
else
comandos
fi
●
Exemplo:
echo "Digite o caminho do arquivo/diretorio"
read caminho
if test -d "$caminho"
then
echo "$caminho é um diretório"
fi
Sintaxe e Semântica (controle de fluxo - case)
●
Sintaxe:
17
case <variavel de controle> in
opcao1)
comandos
;;
opcao2)
comandos
;;
*)
<operação padrão>
esac
Sintaxe e Semântica (controle de fluxo - case)
●
Exemplo:
18
echo "Digite um número"
read num
case "$num" in
1)
echo "Você digitou 1"
;;
2)
echo "Você digitou 2"
;;
*)
echo "Você digitou outro número"
esac
Sintaxe e Semântica (controle de fluxo - select)
●
Sintaxe:
19
select <variável de controle> in <opções>
do
comandos
done
Sintaxe e Semântica (controle de fluxo - select)
●
Exemplo:
20
select i in mostrar_local_atual visualizar_usuarios_logados sair
do
case "$i" in
mostrar_path_atual)
pwd
;;
visualizar_usuarios_logados)
w
;;
sair)
exit
;;
esac
done
Sintaxe e Semântica (controle de fluxo - for)
●
Sintaxe:
21
for <variavel de controle> in lista
do
Comandos
done
●
“lista” pode ser uma lista de dados fixa ou retorno de
alguma função, como o ls.
●
Exemplos:
for i in $(seq 1 10)
do
echo "$i"
done
for i in $(ls /)
do
echo "$i"
done
Sintaxe e Semântica(controle de fluxo - while)
●
Sintaxe:
22
while <avaliação>
do
Comandos
done
●
Exemplo:
cat 'arquivo.txt' | while read i
do
echo $i
done
Sintaxe e Semântica(controle de fluxo - until)
●
Sintaxe:
23
until <avaliação>
do
Comandos
done
●
Exemplos:
i=0
until (( $i >= 10 ))
do
echo $i
((i++))
done
Sintaxe e Semântica(passando argumentos)
●
Sintaxe:
24
./meu_script arg1 arg2 arg3 … argN
●
Exemplos:
#!/bin/bash
echo $(( $1 + $2 ))
Sintaxe e Semântica(array)
●
Sintaxe:
25
vetor=(valor1 valor2 valor3 valorN)
●
Acessando elementos do vetor:
vetor[0]
echo ${vetor[3]}
●
Listando todos os elementos do array:
echo ${vetor[@]}
echo ${vetor[*]}
Sintaxe e Semântica(array)
●
Transformando uma string em um vetor:
26
vetor=(${variavel_string})
●
Transformando um vetor em uma string:
variavel_string=${vetor[*]}
Sintaxe e Semântica(funções)
●
Sintaxe:
27
function nome_da_funcao() {
comandos
}
Sintaxe e Semântica(funções)
●
Exemplo:
28
function eh_primo()
{
resultado="$1 é primo"
limite=$(($1 - 1))
for i in $(seq 2 $limite)
do
if (( $1%$i==0 ))
then
resultado="$1 não é primo"
break
fi
done
echo $resultado
return 0
}
eh_primo $1
Avaliações
29
Facilidade no aprendizado Não é eficiente
Facilidade para criar novos comandos
Baixa legibilidade
Desenvolvimento rápido Baixa confiabilidade
Pobre em recursos nativos.
Referências
http://aurelio.net/shell/apostila-introducao-shell.pdf,
13/04/2016
http://www.slideshare.net/carlosvmelo/shell-script-7737802,
13/04/2016
http://www.slideshare.net/carlosvmelo/shell-script-ii-direcio
nadores
,13/04/2016
https://www.vivaolinux.com.br/artigo/O-que-e-Shell-Script?
pagina=3
,13/04/2016
http://www.linuxmagazine.com.br/lm/noticia/baixe_o_curso
_de_shell_script_do_julio_cezar_neves
,13/04/2016
30
Profa. MSc Ivna Valença <ivnavalenca@gmail.com> 31

Mais conteúdo relacionado

Mais procurados

Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell ScriptHugo Maia Vieira
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell scriptbrunobione
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoRafael Jaques
 
Introdução ao shell script no linux
Introdução ao shell script no linuxIntrodução ao shell script no linux
Introdução ao shell script no linuxPaulo Damas
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell ScriptReinaldo Lima
 
12 aula - shell script-2015
12   aula - shell script-201512   aula - shell script-2015
12 aula - shell script-2015Flávia Santos
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1Norivan Oliveira
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porteFelipe Ribeiro
 
Testes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoTestes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoPaula Grangeiro
 
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPPHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPiMasters
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Webdiogoa21
 
Testes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoTestes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoPaula Grangeiro
 

Mais procurados (20)

Shell script
Shell scriptShell script
Shell script
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell Script
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell script
 
Shell Script v0
Shell Script v0Shell Script v0
Shell Script v0
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
 
Introdução ao shell script no linux
Introdução ao shell script no linuxIntrodução ao shell script no linux
Introdução ao shell script no linux
 
Shell Script
Shell ScriptShell Script
Shell Script
 
Curso shell
Curso shellCurso shell
Curso shell
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
 
PHP-CLI em 7 passos
PHP-CLI em 7 passosPHP-CLI em 7 passos
PHP-CLI em 7 passos
 
12 aula - shell script-2015
12   aula - shell script-201512   aula - shell script-2015
12 aula - shell script-2015
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
PowerShell
PowerShellPowerShell
PowerShell
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
Testes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoTestes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de código
 
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPPHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
 
Shell scripts
Shell scriptsShell scripts
Shell scripts
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
Testes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoTestes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de código
 

Destaque

Linux4all#1
Linux4all#1Linux4all#1
Linux4all#1Daniel
 
Oficina shell
Oficina shellOficina shell
Oficina shellapsegundo
 
Super video aulas comandos shell linux + de 2 horas de aula
Super video aulas comandos shell linux + de 2 horas de aulaSuper video aulas comandos shell linux + de 2 horas de aula
Super video aulas comandos shell linux + de 2 horas de aulaVideo Aulas Linux e Mikrotik
 
O Que é Shell (bash)
O Que é Shell (bash)O Que é Shell (bash)
O Que é Shell (bash)Sérgio Silva
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores LinuxJoão Sá
 
Linux - Shell e Comandos Básicos
Linux - Shell e Comandos BásicosLinux - Shell e Comandos Básicos
Linux - Shell e Comandos BásicosFrederico Madeira
 
Redes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. MorimotoRedes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. MorimotoHeber Gutenberg
 
Livro Programação em Shell 8 edição Julio Cézar Nevez
Livro Programação em Shell 8 edição   Julio Cézar NevezLivro Programação em Shell 8 edição   Julio Cézar Nevez
Livro Programação em Shell 8 edição Julio Cézar NevezSoftD Abreu
 
Livro proibido do curso de hacker completo 285 páginas 71
Livro proibido do curso de hacker completo 285 páginas 71Livro proibido do curso de hacker completo 285 páginas 71
Livro proibido do curso de hacker completo 285 páginas 71Guilherme Dias
 

Destaque (15)

Linux4all#1
Linux4all#1Linux4all#1
Linux4all#1
 
Creative Advantage Wp
Creative Advantage WpCreative Advantage Wp
Creative Advantage Wp
 
Oficina shell
Oficina shellOficina shell
Oficina shell
 
Linux shell
Linux shellLinux shell
Linux shell
 
Super video aulas comandos shell linux + de 2 horas de aula
Super video aulas comandos shell linux + de 2 horas de aulaSuper video aulas comandos shell linux + de 2 horas de aula
Super video aulas comandos shell linux + de 2 horas de aula
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
O Que é Shell (bash)
O Que é Shell (bash)O Que é Shell (bash)
O Que é Shell (bash)
 
Shell Script Linux
Shell Script LinuxShell Script Linux
Shell Script Linux
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores Linux
 
Linux - Shell e Comandos Básicos
Linux - Shell e Comandos BásicosLinux - Shell e Comandos Básicos
Linux - Shell e Comandos Básicos
 
Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
Redes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. MorimotoRedes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. Morimoto
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
Livro Programação em Shell 8 edição Julio Cézar Nevez
Livro Programação em Shell 8 edição   Julio Cézar NevezLivro Programação em Shell 8 edição   Julio Cézar Nevez
Livro Programação em Shell 8 edição Julio Cézar Nevez
 
Livro proibido do curso de hacker completo 285 páginas 71
Livro proibido do curso de hacker completo 285 páginas 71Livro proibido do curso de hacker completo 285 páginas 71
Livro proibido do curso de hacker completo 285 páginas 71
 

Semelhante a Shell Script Guia

Introdução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves HaxIntrodução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves HaxTchelinux
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Leo Amorim
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1Leo Amorim
 
Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Sandro Custodio
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandosIvan Ribeiro
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linuxguilhermeoki
 
Curso de shell
Curso de shellCurso de shell
Curso de shellTiago
 
Curso de shell
Curso de shellCurso de shell
Curso de shellTiago
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfAndreiaCristinaFlore
 
Operadores de redirecionamento
Operadores de redirecionamentoOperadores de redirecionamento
Operadores de redirecionamentoIvani Nascimento
 
Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shellMarcio Pereira
 
Comandos básicos linux
Comandos básicos linuxComandos básicos linux
Comandos básicos linuxLuciano Souto
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem corvel
 
Trabalhando na Linha de comando
Trabalhando na  Linha de comandoTrabalhando na  Linha de comando
Trabalhando na Linha de comandoSoftD Abreu
 
Prog shell
Prog shellProg shell
Prog shellTiago
 

Semelhante a Shell Script Guia (20)

Introdução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves HaxIntrodução à Shell Script - Vinícius Alves Hax
Introdução à Shell Script - Vinícius Alves Hax
 
Ud2
Ud2Ud2
Ud2
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 
Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandos
 
Aprendendo linux
Aprendendo linuxAprendendo linux
Aprendendo linux
 
Unidade 3.6 Introdução ao Shell
Unidade 3.6 Introdução ao ShellUnidade 3.6 Introdução ao Shell
Unidade 3.6 Introdução ao Shell
 
Shell script
Shell script Shell script
Shell script
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linux
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
 
shell bash Fpar aula6
shell bash Fpar aula6shell bash Fpar aula6
shell bash Fpar aula6
 
Operadores de redirecionamento
Operadores de redirecionamentoOperadores de redirecionamento
Operadores de redirecionamento
 
Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shell
 
Comandos básicos linux
Comandos básicos linuxComandos básicos linux
Comandos básicos linux
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Trabalhando na Linha de comando
Trabalhando na  Linha de comandoTrabalhando na  Linha de comando
Trabalhando na Linha de comando
 
Prog shell
Prog shellProg shell
Prog shell
 

Shell Script Guia

  • 2. Roteiro ● História ● Paradigmas seguidos e características ● Mercado ● Sintaxe e Semântica ● Avaliações ● Bibliografia 2
  • 3. História ● Shell Script foi criada quando Dennis Ritchie e Ken Thompson buscavam algo que oferecesse características melhores do que os interpretadores de comandos usados para interagir com o UNIX. Surge, então o Shell criado por Stephen Bourne, conhecido como sh e foi lançado em 1977 junto com o Unix Versão 7. ● Outros Shells foram desenvolvidos, como o C Shell(csh), Korn Shell(ksh), Z Shell(zsh), Bourne Again Shell(bash). 3
  • 5. Paradigmas seguidos e características ● ShellScript suporta apenas o paradigma imperativo ● Linguagem interpretada. ● Tipagem fraca e dinâmica 5
  • 6. Mercado 6 ● Automação de tarefas do dia-a-dia do desenvolvedor ● Automação de processo de deployment ● Instalação e configuração de sistemas operacionais
  • 8. Mercado 8 ● Exemplos de deploy com git #!/bin/sh # /home/user/git_servers/meu_projeto.git/hooks/post-receive echo "-- hooks --" cd /home/user/meu_projeto unset GIT_DIR git pull origin master sudo stop meu_projeto sudo start meu_projeto ● Aplicação Django
  • 9. Mercado 9 ● Exemplos de deploy com git #!/bin/bash -l echo "-- hooks --" cd /home/user/meu_projeto unset GIT_DIR git pull origin master echo "-- installing gems --" bundle install echo "-- migrating database --" rake db:migrate RAILS_ENV=production echo "-- cleaning assets --" rake assets:clean RAILS_ENV=production echo "-- compiling assets --" rake assets:precompile RAILS_ENV=production echo "-- restarting server --" touch tmp/restart.txt ● Aplicação Rails
  • 10. Sintaxe e Semântica ● Para criar um script normalmente cria-se um arquivo com extenão .sh. ● Para executá-lo é necessário primeirament dar permissão para execução: ● chmod +x <nome_do_arquivo>.sh ● Utilize ./<nome_do_arquivo>.sh para executar seu script no diretório que foi criado. ● OBS.: Caso queira executar seu script em qualquer parte do sistema mova-o para um diretório que está presente no seu PATH, caso não tenha permissão mova-o para o diretório $HOME. 10
  • 11. Sintaxe e Semântica ● A primeira linha de qualquer script deverá ser um comentário especificando qual shell interpretará as linhas subsequentes do script. Se esta linha não exisitir, o shell padrão do SO será utilizado. ● Ex.: #!/bin/bash 11
  • 12. Sintaxe e Semântica (Entrada e Saída) ● O comando para saída no console é o echo. ● Exemplo: ● echo “Hello World” ● O comando para ler dados do teclado é o read ● Exemplo: ● echo “Executar script agora? [s/n]” ● read resposta ● Para saídas formatadas usa-se a função printf. ● Exemplo: ● printf “%f” $variavel 12
  • 13. ● A declaração de variável é feita da seguinte forma: ● <nomeDaVariavel>=<valor> ● Não existe espaço entre o sinal “=”. ● Exemplos: ● idade=50 ● nome=”Fulano” ● teste = “teste errado” (forma errada) ● Todas as variáveis são globais por definição a não ser que os comandos “local” ou “declare” sejam usados. ● Constantes são criadas por meio da palvra reservada readonly. 13 Sintaxe e Semântica (Variáveis e Constantes)
  • 14. Sintaxe e Semântica (Comando test) ● Comando utilizado para fazer vários tipos de verificações, muito usado em estruturas de controle de fluxo(Ex.: if, while) 14
  • 15. Sintaxe e Semântica (Comando test) 15 Testes em variáveis -lt Nº é menor que (LessThan) -gt Nº é maior que (GreaterThan) -le Nº é menor ou igual (LessEqual) -ge Nº é maior ou igual (GreaterThan) -eq Nº é igual (Equal) -ne Nº é diferente (NotEqual) = String é igual != String é diferente -n String é não nula -z String é nula Testes em arquivos -d É um diretório -f É um arquivo normal -r O arquivo tem permissão de leitura -s O tamanho do arquivo é maior que zero -w O arquivo tem permissão de escrita -nt O arquivo é mais recente(NewerThan) -ot O arquivo é mais antigo(OlderThan) -ef O arquivo é o mesmo (EqualFile) Operadores Lógicos ! Não -a E -o OU
  • 16. Sintaxe e Semântica (controle de fluxo - if) ● Sintaxe: 16 if <avaliação> then comandos elif <avaliação> then comandos else comandos fi ● Exemplo: echo "Digite o caminho do arquivo/diretorio" read caminho if test -d "$caminho" then echo "$caminho é um diretório" fi
  • 17. Sintaxe e Semântica (controle de fluxo - case) ● Sintaxe: 17 case <variavel de controle> in opcao1) comandos ;; opcao2) comandos ;; *) <operação padrão> esac
  • 18. Sintaxe e Semântica (controle de fluxo - case) ● Exemplo: 18 echo "Digite um número" read num case "$num" in 1) echo "Você digitou 1" ;; 2) echo "Você digitou 2" ;; *) echo "Você digitou outro número" esac
  • 19. Sintaxe e Semântica (controle de fluxo - select) ● Sintaxe: 19 select <variável de controle> in <opções> do comandos done
  • 20. Sintaxe e Semântica (controle de fluxo - select) ● Exemplo: 20 select i in mostrar_local_atual visualizar_usuarios_logados sair do case "$i" in mostrar_path_atual) pwd ;; visualizar_usuarios_logados) w ;; sair) exit ;; esac done
  • 21. Sintaxe e Semântica (controle de fluxo - for) ● Sintaxe: 21 for <variavel de controle> in lista do Comandos done ● “lista” pode ser uma lista de dados fixa ou retorno de alguma função, como o ls. ● Exemplos: for i in $(seq 1 10) do echo "$i" done for i in $(ls /) do echo "$i" done
  • 22. Sintaxe e Semântica(controle de fluxo - while) ● Sintaxe: 22 while <avaliação> do Comandos done ● Exemplo: cat 'arquivo.txt' | while read i do echo $i done
  • 23. Sintaxe e Semântica(controle de fluxo - until) ● Sintaxe: 23 until <avaliação> do Comandos done ● Exemplos: i=0 until (( $i >= 10 )) do echo $i ((i++)) done
  • 24. Sintaxe e Semântica(passando argumentos) ● Sintaxe: 24 ./meu_script arg1 arg2 arg3 … argN ● Exemplos: #!/bin/bash echo $(( $1 + $2 ))
  • 25. Sintaxe e Semântica(array) ● Sintaxe: 25 vetor=(valor1 valor2 valor3 valorN) ● Acessando elementos do vetor: vetor[0] echo ${vetor[3]} ● Listando todos os elementos do array: echo ${vetor[@]} echo ${vetor[*]}
  • 26. Sintaxe e Semântica(array) ● Transformando uma string em um vetor: 26 vetor=(${variavel_string}) ● Transformando um vetor em uma string: variavel_string=${vetor[*]}
  • 28. Sintaxe e Semântica(funções) ● Exemplo: 28 function eh_primo() { resultado="$1 é primo" limite=$(($1 - 1)) for i in $(seq 2 $limite) do if (( $1%$i==0 )) then resultado="$1 não é primo" break fi done echo $resultado return 0 } eh_primo $1
  • 29. Avaliações 29 Facilidade no aprendizado Não é eficiente Facilidade para criar novos comandos Baixa legibilidade Desenvolvimento rápido Baixa confiabilidade Pobre em recursos nativos.
  • 31. Profa. MSc Ivna Valença <ivnavalenca@gmail.com> 31