SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Ermitão Renacido
         A vida na casca




        Luiz Guaraldo
guaraldo@universolivre.com.br
O poder do Bash Script
 ●   Console texto (shell) altamente programável;
 ●   Simples de programar (não precisa ser
     programador);
 ●   Ágil e prático;
 ●   Usa as funcionalidades do Sistema;
 ●   Executa qualquer ação que pode ser
     executada em uma console shell.


13/03/13 15:37          TcheLinux Porto Alegre 2012   2
A porta é a necessidade
 ●   O que precisa ser feito?
 ●   Sempre usa comandos parecidos?
 ●   É necessário decidir algo?
 ●   O que é levado em consideração para a
     decisão?
 ●   São muitas ou poucas variáveis?
 ●   Precisa interação do usuário?


13/03/13 15:37          TcheLinux Porto Alegre 2012   3
Criatividade é a chave
 ●   O que usar e quando usar.
 ●   Como pegar as variáveis?
 ●   Tomadas de decisões com as variáveis?
 ●   Laços simples?
 ●   Laços complexos?
 ●   Encadear comandos?



13/03/13 15:37         TcheLinux Porto Alegre 2012   4
Variáveis
 ●   Entrada de variáveis:
      –    $1, $2, $3 … $N – Argumento 1, 2, 3 … N
 ●   Variáveis internas:
      –    Integer/Char/String/Float/Whatever;
            ●    Não faz nenhuma diferença
      –    NOME=INFORMAÇÃO




13/03/13 15:37                 TcheLinux Porto Alegre 2012   5
variáveis
 ●   Uso especial:
      –    $?
            ●    Verificação do status de saída do último comando
      –    $@
            ●    Todos os argumentos
      –    $#
            ●    Número de argumentos passados




13/03/13 15:37                  TcheLinux Porto Alegre 2012         6
Tomada de decisão
     if [TESTE]; then
           comandos;
     elif [TESTE]; then
           comandos;
     else
           comandos;
     fi


13/03/13 15:37          TcheLinux Porto Alegre 2012   7
Tomada de decisões
   case $VAR in
       teste1)
          comandos;
          ;;
       teste2)
          commandos;
          ;;
       testeN)
          comomandos;
          ;;
       *)
            commandos;
            ;;
   esac


13/03/13 15:37           TcheLinux Porto Alegre 2012   8
Laços
     for variavel in 'situações'; do
           comandos;
     done




13/03/13 15:37         TcheLinux Porto Alegre 2012   9
Laços
     while [TESTE]; do
           comandos
     done


     while :; do               # Isso é um laço infinito
           comandos
     done


13/03/13 15:37        TcheLinux Porto Alegre 2012          10
Direcionando saídas
 ●   Para arquivo:
      –    comando >> arquivo.log
      –    comando | tee -a arquivo.log


 ●   Apenas erros:
      –    comando 2> /dev/null 1> arquivo.log




13/03/13 15:37             TcheLinux Porto Alegre 2012   11
Encadeamento
 ●   comando1 E comando2:
      –    comando1 && comando2


 ●   comando1 OU comando2:
      –    comando1 || comando2




13/03/13 15:37           TcheLinux Porto Alegre 2012   12
Interatividade Gráfica
                            ou quase isso...


 ●   Dialog – Janelas na console texto
      –    Multiplas formas de tomar informações do
           operador em consoles não gráficas.

 ●   Zenity – Gnome
      –    Interatividade através do X.org, também com
           diversas formas de tomar informações.




13/03/13 15:37            TcheLinux Porto Alegre 2012    13
Para saber mais
 ●   Advanced Bash-Scripting Guide
      –    http://tldp.org/LDP/abs/html/
 ●   Google é seu amigo...
      –    Pergunte ao oráculo...




13/03/13 15:37              TcheLinux Porto Alegre 2012   14
Sobre o palestrante
 ●   Site:
      –    http://www.universolivre.com.br
 ●   Email:
      –    guaraldo@universolivre.com.br
 ●   Gtalk e Google+:
      –    softwarelivre@gmail.com




13/03/13 15:37             TcheLinux Porto Alegre 2012   15

Contenu connexe

Tendances

Trabalho2 Paradima de Programção Concorrente
Trabalho2 Paradima de Programção ConcorrenteTrabalho2 Paradima de Programção Concorrente
Trabalho2 Paradima de Programção ConcorrenteMirlene Souza
 
2 controle fluxo
2 controle fluxo2 controle fluxo
2 controle fluxoprofwtelles
 
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso códigoRuby 3 e Análise estática - O que esperar e o que significa para o nosso código
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso códigoWeverton Timoteo
 
IAsyncResult Pattern ou Asynchronous Programming Model (APM)
IAsyncResult Pattern ou Asynchronous Programming Model (APM)IAsyncResult Pattern ou Asynchronous Programming Model (APM)
IAsyncResult Pattern ou Asynchronous Programming Model (APM)Rogério Moraes de Carvalho
 
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...Weverton Timoteo
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem PythonAlex Tercete
 
Logging e depuração enterprise-level com Log4perl
Logging e depuração enterprise-level com Log4perlLogging e depuração enterprise-level com Log4perl
Logging e depuração enterprise-level com Log4perlgarux
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completothomasdacosta
 
Compus Party - processing e arduino
Compus Party - processing e arduinoCompus Party - processing e arduino
Compus Party - processing e arduinoCampus Party Brasil
 
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...Rogério Moraes de Carvalho
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programaçãoSandro Lopes
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing Jorge Cardoso
 
Qualidade em projetos PHP - TDC 2011
Qualidade em projetos PHP - TDC 2011Qualidade em projetos PHP - TDC 2011
Qualidade em projetos PHP - TDC 2011Luís Cobucci
 
Controlando o fluxo de forma simples para construir pipelines complexas
Controlando o fluxo de forma simples para construir pipelines complexasControlando o fluxo de forma simples para construir pipelines complexas
Controlando o fluxo de forma simples para construir pipelines complexasJuan Funez
 

Tendances (20)

Aula12- PHP
Aula12- PHPAula12- PHP
Aula12- PHP
 
Roteiro exp2
Roteiro exp2Roteiro exp2
Roteiro exp2
 
Aula14 - Funções em PHP
Aula14 - Funções em PHPAula14 - Funções em PHP
Aula14 - Funções em PHP
 
Trabalho2 Paradima de Programção Concorrente
Trabalho2 Paradima de Programção ConcorrenteTrabalho2 Paradima de Programção Concorrente
Trabalho2 Paradima de Programção Concorrente
 
2 controle fluxo
2 controle fluxo2 controle fluxo
2 controle fluxo
 
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso códigoRuby 3 e Análise estática - O que esperar e o que significa para o nosso código
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
 
Resumo OpenMP
Resumo OpenMPResumo OpenMP
Resumo OpenMP
 
IAsyncResult Pattern ou Asynchronous Programming Model (APM)
IAsyncResult Pattern ou Asynchronous Programming Model (APM)IAsyncResult Pattern ou Asynchronous Programming Model (APM)
IAsyncResult Pattern ou Asynchronous Programming Model (APM)
 
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
[Ruby Summit Brasil 2020] Ruby 3 e Análise estática - O que esperar e o que s...
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem Python
 
Logging e depuração enterprise-level com Log4perl
Logging e depuração enterprise-level com Log4perlLogging e depuração enterprise-level com Log4perl
Logging e depuração enterprise-level com Log4perl
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
 
Compus Party - processing e arduino
Compus Party - processing e arduinoCompus Party - processing e arduino
Compus Party - processing e arduino
 
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
OpenMP
OpenMPOpenMP
OpenMP
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
 
Qualidade em projetos PHP - TDC 2011
Qualidade em projetos PHP - TDC 2011Qualidade em projetos PHP - TDC 2011
Qualidade em projetos PHP - TDC 2011
 
Java script
Java scriptJava script
Java script
 
Controlando o fluxo de forma simples para construir pipelines complexas
Controlando o fluxo de forma simples para construir pipelines complexasControlando o fluxo de forma simples para construir pipelines complexas
Controlando o fluxo de forma simples para construir pipelines complexas
 

En vedette

Use of i pads to support numeracy
Use of i pads to support numeracyUse of i pads to support numeracy
Use of i pads to support numeracybelfelearning
 
2013 03-12-masterclass-biomedical-applications-of-am sirris-trends
2013 03-12-masterclass-biomedical-applications-of-am sirris-trends2013 03-12-masterclass-biomedical-applications-of-am sirris-trends
2013 03-12-masterclass-biomedical-applications-of-am sirris-trendsSirris
 
Representation of race & ethnicity
Representation of race & ethnicityRepresentation of race & ethnicity
Representation of race & ethnicityCraig Osborne
 
Cómo manejar la ansiedad cuando se presenta
Cómo manejar la ansiedad cuando se presentaCómo manejar la ansiedad cuando se presenta
Cómo manejar la ansiedad cuando se presentaDamian Ibarra
 
erp-demo: Betriebsmittelverwaltung ­Einzel
erp-demo: Betriebsmittelverwaltung ­Einzelerp-demo: Betriebsmittelverwaltung ­Einzel
erp-demo: Betriebsmittelverwaltung ­Einzelguestd55f64b
 
Understanding Financial Statement
Understanding Financial StatementUnderstanding Financial Statement
Understanding Financial StatementCA Gaurav Gupta
 
Infopaq Social Media Analyse Protestbewegungen
Infopaq Social Media Analyse ProtestbewegungenInfopaq Social Media Analyse Protestbewegungen
Infopaq Social Media Analyse ProtestbewegungenInfopaq Deutschland
 
Gene Autry revista completa, Novaro, 01 noviembre 1965
Gene Autry revista completa, Novaro,  01 noviembre 1965Gene Autry revista completa, Novaro,  01 noviembre 1965
Gene Autry revista completa, Novaro, 01 noviembre 1965Martin Alberto Belaustegui
 
Prezentacja: Dialog
Prezentacja: DialogPrezentacja: Dialog
Prezentacja: Dialogguest5ec3426
 
2012-08-30 Ubi medienkritik 2012_ho
2012-08-30 Ubi medienkritik 2012_ho2012-08-30 Ubi medienkritik 2012_ho
2012-08-30 Ubi medienkritik 2012_hoVinzenz Wyss
 
2012 09 12-medienqualifizierung_ho
2012 09 12-medienqualifizierung_ho2012 09 12-medienqualifizierung_ho
2012 09 12-medienqualifizierung_hoVinzenz Wyss
 
Servicios de internet
Servicios de internetServicios de internet
Servicios de internetCeeciInfinite
 
Dioxin-Skandal in den Social Media. Infopaq Kurzanalyse 28.01.2011
Dioxin-Skandal in den Social Media. Infopaq Kurzanalyse 28.01.2011Dioxin-Skandal in den Social Media. Infopaq Kurzanalyse 28.01.2011
Dioxin-Skandal in den Social Media. Infopaq Kurzanalyse 28.01.2011Infopaq Deutschland
 

En vedette (19)

Via crucis card ratzinger
Via crucis card ratzingerVia crucis card ratzinger
Via crucis card ratzinger
 
Use of i pads to support numeracy
Use of i pads to support numeracyUse of i pads to support numeracy
Use of i pads to support numeracy
 
2013 03-12-masterclass-biomedical-applications-of-am sirris-trends
2013 03-12-masterclass-biomedical-applications-of-am sirris-trends2013 03-12-masterclass-biomedical-applications-of-am sirris-trends
2013 03-12-masterclass-biomedical-applications-of-am sirris-trends
 
Representation of race & ethnicity
Representation of race & ethnicityRepresentation of race & ethnicity
Representation of race & ethnicity
 
Cómo manejar la ansiedad cuando se presenta
Cómo manejar la ansiedad cuando se presentaCómo manejar la ansiedad cuando se presenta
Cómo manejar la ansiedad cuando se presenta
 
Ángulos horizontales
Ángulos horizontalesÁngulos horizontales
Ángulos horizontales
 
erp-demo: Betriebsmittelverwaltung ­Einzel
erp-demo: Betriebsmittelverwaltung ­Einzelerp-demo: Betriebsmittelverwaltung ­Einzel
erp-demo: Betriebsmittelverwaltung ­Einzel
 
Wound care
Wound careWound care
Wound care
 
Understanding Financial Statement
Understanding Financial StatementUnderstanding Financial Statement
Understanding Financial Statement
 
RES5
RES5RES5
RES5
 
Don Pascual Broschüre
Don Pascual BroschüreDon Pascual Broschüre
Don Pascual Broschüre
 
Infopaq Social Media Analyse Protestbewegungen
Infopaq Social Media Analyse ProtestbewegungenInfopaq Social Media Analyse Protestbewegungen
Infopaq Social Media Analyse Protestbewegungen
 
Gene Autry revista completa, Novaro, 01 noviembre 1965
Gene Autry revista completa, Novaro,  01 noviembre 1965Gene Autry revista completa, Novaro,  01 noviembre 1965
Gene Autry revista completa, Novaro, 01 noviembre 1965
 
Prezentacja: Dialog
Prezentacja: DialogPrezentacja: Dialog
Prezentacja: Dialog
 
2012-08-30 Ubi medienkritik 2012_ho
2012-08-30 Ubi medienkritik 2012_ho2012-08-30 Ubi medienkritik 2012_ho
2012-08-30 Ubi medienkritik 2012_ho
 
2012 09 12-medienqualifizierung_ho
2012 09 12-medienqualifizierung_ho2012 09 12-medienqualifizierung_ho
2012 09 12-medienqualifizierung_ho
 
Prezentacja
PrezentacjaPrezentacja
Prezentacja
 
Servicios de internet
Servicios de internetServicios de internet
Servicios de internet
 
Dioxin-Skandal in den Social Media. Infopaq Kurzanalyse 28.01.2011
Dioxin-Skandal in den Social Media. Infopaq Kurzanalyse 28.01.2011Dioxin-Skandal in den Social Media. Infopaq Kurzanalyse 28.01.2011
Dioxin-Skandal in den Social Media. Infopaq Kurzanalyse 28.01.2011
 

Similaire à Ermitão Renascido: A vida na casca

LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsLinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsFernando Mercês
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em CDiego Santos
 
Shell Script - Luz e trevas
Shell Script - Luz e trevasShell Script - Luz e trevas
Shell Script - Luz e trevasOsvaldo Filho
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcadaRodrigo Almeida
 
Como Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé LeiteComo Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé LeiteTchelinux
 
Tech lunch Pair Programming
Tech lunch Pair ProgrammingTech lunch Pair Programming
Tech lunch Pair ProgrammingInformantTalks
 
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novoArduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novoFernando Passold
 
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé LeiteComo Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé LeiteTchelinux
 
Display de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosDisplay de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosRodrigo Almeida
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisEmanoel Lopes
 
PHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControlePHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControleGeorge Mendonça
 
10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em PhpAlmir Mendes
 
P01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhorP01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhorLeandro Ferreira
 
Treinamento de-comandos-unix-e-linux-1205757024667193-4
Treinamento de-comandos-unix-e-linux-1205757024667193-4Treinamento de-comandos-unix-e-linux-1205757024667193-4
Treinamento de-comandos-unix-e-linux-1205757024667193-4Nunes Adriano
 
Otimizando Portais Plone: Dicas de Desempenho
Otimizando Portais Plone: Dicas de DesempenhoOtimizando Portais Plone: Dicas de Desempenho
Otimizando Portais Plone: Dicas de DesempenhoDouglas Soares de Andrade
 
Aula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptAula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptJadna Almeida
 
A linguagem de programação Erlang
A linguagem de programação ErlangA linguagem de programação Erlang
A linguagem de programação Erlangelliando dias
 

Similaire à Ermitão Renascido: A vida na casca (20)

LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsLinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em C
 
Shell Script - Luz e trevas
Shell Script - Luz e trevasShell Script - Luz e trevas
Shell Script - Luz e trevas
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcada
 
Como Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé LeiteComo Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé Leite
 
Tech lunch Pair Programming
Tech lunch Pair ProgrammingTech lunch Pair Programming
Tech lunch Pair Programming
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novoArduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
 
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé LeiteComo Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
 
Display de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosDisplay de 7 segmentos multiplexados
Display de 7 segmentos multiplexados
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
PHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControlePHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de Controle
 
10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php
 
PHP-CLI em 7 passos
PHP-CLI em 7 passosPHP-CLI em 7 passos
PHP-CLI em 7 passos
 
P01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhorP01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhor
 
Treinamento de-comandos-unix-e-linux-1205757024667193-4
Treinamento de-comandos-unix-e-linux-1205757024667193-4Treinamento de-comandos-unix-e-linux-1205757024667193-4
Treinamento de-comandos-unix-e-linux-1205757024667193-4
 
Otimizando Portais Plone: Dicas de Desempenho
Otimizando Portais Plone: Dicas de DesempenhoOtimizando Portais Plone: Dicas de Desempenho
Otimizando Portais Plone: Dicas de Desempenho
 
Notas deaulas
Notas deaulasNotas deaulas
Notas deaulas
 
Aula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptAula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.ppt
 
A linguagem de programação Erlang
A linguagem de programação ErlangA linguagem de programação Erlang
A linguagem de programação Erlang
 

Ermitão Renascido: A vida na casca

  • 1. Ermitão Renacido A vida na casca Luiz Guaraldo guaraldo@universolivre.com.br
  • 2. O poder do Bash Script ● Console texto (shell) altamente programável; ● Simples de programar (não precisa ser programador); ● Ágil e prático; ● Usa as funcionalidades do Sistema; ● Executa qualquer ação que pode ser executada em uma console shell. 13/03/13 15:37 TcheLinux Porto Alegre 2012 2
  • 3. A porta é a necessidade ● O que precisa ser feito? ● Sempre usa comandos parecidos? ● É necessário decidir algo? ● O que é levado em consideração para a decisão? ● São muitas ou poucas variáveis? ● Precisa interação do usuário? 13/03/13 15:37 TcheLinux Porto Alegre 2012 3
  • 4. Criatividade é a chave ● O que usar e quando usar. ● Como pegar as variáveis? ● Tomadas de decisões com as variáveis? ● Laços simples? ● Laços complexos? ● Encadear comandos? 13/03/13 15:37 TcheLinux Porto Alegre 2012 4
  • 5. Variáveis ● Entrada de variáveis: – $1, $2, $3 … $N – Argumento 1, 2, 3 … N ● Variáveis internas: – Integer/Char/String/Float/Whatever; ● Não faz nenhuma diferença – NOME=INFORMAÇÃO 13/03/13 15:37 TcheLinux Porto Alegre 2012 5
  • 6. variáveis ● Uso especial: – $? ● Verificação do status de saída do último comando – $@ ● Todos os argumentos – $# ● Número de argumentos passados 13/03/13 15:37 TcheLinux Porto Alegre 2012 6
  • 7. Tomada de decisão if [TESTE]; then comandos; elif [TESTE]; then comandos; else comandos; fi 13/03/13 15:37 TcheLinux Porto Alegre 2012 7
  • 8. Tomada de decisões case $VAR in teste1) comandos; ;; teste2) commandos; ;; testeN) comomandos; ;; *) commandos; ;; esac 13/03/13 15:37 TcheLinux Porto Alegre 2012 8
  • 9. Laços for variavel in 'situações'; do comandos; done 13/03/13 15:37 TcheLinux Porto Alegre 2012 9
  • 10. Laços while [TESTE]; do comandos done while :; do # Isso é um laço infinito comandos done 13/03/13 15:37 TcheLinux Porto Alegre 2012 10
  • 11. Direcionando saídas ● Para arquivo: – comando >> arquivo.log – comando | tee -a arquivo.log ● Apenas erros: – comando 2> /dev/null 1> arquivo.log 13/03/13 15:37 TcheLinux Porto Alegre 2012 11
  • 12. Encadeamento ● comando1 E comando2: – comando1 && comando2 ● comando1 OU comando2: – comando1 || comando2 13/03/13 15:37 TcheLinux Porto Alegre 2012 12
  • 13. Interatividade Gráfica ou quase isso... ● Dialog – Janelas na console texto – Multiplas formas de tomar informações do operador em consoles não gráficas. ● Zenity – Gnome – Interatividade através do X.org, também com diversas formas de tomar informações. 13/03/13 15:37 TcheLinux Porto Alegre 2012 13
  • 14. Para saber mais ● Advanced Bash-Scripting Guide – http://tldp.org/LDP/abs/html/ ● Google é seu amigo... – Pergunte ao oráculo... 13/03/13 15:37 TcheLinux Porto Alegre 2012 14
  • 15. Sobre o palestrante ● Site: – http://www.universolivre.com.br ● Email: – guaraldo@universolivre.com.br ● Gtalk e Google+: – softwarelivre@gmail.com 13/03/13 15:37 TcheLinux Porto Alegre 2012 15