SlideShare une entreprise Scribd logo
1  sur  10
Daniel Carneiro
Shell Script
Parte III
Function
● Sintaxe:
function NAME { commands }
NAME() { commands }
● Obs:
● Parametros são recebidos como $1, $2, …
● Parametros não são declarados na função
Function
fn1() {
  echo fn1
}
function fn2 {
  echo fn2 $1
  fn1
}
fn1
fn2 teste
Exit code
● Todo aplicativo possui um exit code
int main(int argc, char **argv) {
return 1;
}
● Normalmente o código 0 significa execução
normal
● Pode ser consultado usando $?
Test
● Retorna exit code 0 se a expressão for
verdadeira ou 1 caso contrário
● Pode ser chamado pelo seu equivalente [
● Expressões
● -a, -o → and, or
● -n, -z → nonzero size string, zero size string
– [ ­z “$X” ]
Test
● =, != → Para strings
– [ “aa” = “ab” ]
● -eq, -ne → Para inteiros
– [ 1 ­eq $X ]
● -gt, -lt, -ge, le → >, <, ≥, ≤
● -f → arquivo normal existe
– [ ­f “/home/daniel/arquivo” ]
● -d → diretorio existe
– [ ­f “/home” ]
Test
● -s → arquivo normal com size > 0
● -nt, -ot → newer than, older than
– [ “a.sql” -nt b.sql ]
● -r, -w, -x → permissões r, w, x
– [ ­r a.sql ]
– [ ­n “$nome” ­a ­f $nome ­a ­r $nome ]
– [ $x ­eq 0 ­o $x ­gt 10 ]
IF
● if <commands>; then <commands>; 
else <commands>; fi
● if <commands>; then
<commands>
elif <commands>; then
<commands>
else
<commands>
fi
IF
● if [ ­n $nome ]; then echo $nome; fi
● if [ ­f $arq ­a ­r $arq ]; then
  echo Contando ${arq}...
  wc ­l $arq
else 
  echo Nao posso ler $arq
fi
● if grep "error" $arq > /dev/null; then
  echo achei
fi
IF
if [ ­f $arq ­a ­r $arq ]; then
  echo ­n Contando ${arq}...
  linhas=$(wc ­l $arq)
  linhas=${linhas/ */}
  if [ $linhas ­eq 0 ]; then
    echo esta vazio
  else
    echo $linhas linhas
  fi
else
  echo Nao posso ler $arq
fi

Contenu connexe

Tendances

Comparando dois números
Comparando dois númerosComparando dois números
Comparando dois números
nataferraz
 
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisLabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
Carlos Santos
 

Tendances (17)

Linguagem C - Strings
Linguagem C - StringsLinguagem C - Strings
Linguagem C - Strings
 
Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1
 
Debugging tips and tricks
Debugging tips and tricksDebugging tips and tricks
Debugging tips and tricks
 
Trabalho
TrabalhoTrabalho
Trabalho
 
Filas encadeadas
Filas encadeadasFilas encadeadas
Filas encadeadas
 
apostila C++
apostila C++apostila C++
apostila C++
 
Comparando dois números
Comparando dois númerosComparando dois números
Comparando dois números
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Pilhas encadeadas
Pilhas encadeadasPilhas encadeadas
Pilhas encadeadas
 
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisLabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
 
JavaScript - De verdade
JavaScript - De verdadeJavaScript - De verdade
JavaScript - De verdade
 
Intro funcoes(2)
Intro funcoes(2)Intro funcoes(2)
Intro funcoes(2)
 
Funções PHP - Criação de sites II
Funções PHP - Criação de sites II Funções PHP - Criação de sites II
Funções PHP - Criação de sites II
 
Vetores, Matrizes e Strings em C Parte 3
Vetores, Matrizes e Strings em C Parte 3Vetores, Matrizes e Strings em C Parte 3
Vetores, Matrizes e Strings em C Parte 3
 
Javascript Avançado
Javascript AvançadoJavascript Avançado
Javascript Avançado
 
Aula4
Aula4Aula4
Aula4
 
Python 02
Python 02Python 02
Python 02
 

En vedette (10)

Certificados digitais
Certificados digitaisCertificados digitais
Certificados digitais
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
FLOSS
FLOSSFLOSS
FLOSS
 
Unix is my IDE
Unix is my IDEUnix is my IDE
Unix is my IDE
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Introdução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardwareIntrodução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardware
 
Tutorial Shell Script
Tutorial Shell ScriptTutorial Shell Script
Tutorial Shell Script
 

Dernier

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Dernier (6)

Certificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdfCertificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdf
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
Apresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdfApresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdf
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdfConcurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdf
 

Shell Scripting