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

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 1Elaine Cecília Gatto
 
Debugging tips and tricks
Debugging tips and tricksDebugging tips and tricks
Debugging tips and tricksTales Andrade
 
Comparando dois números
Comparando dois númerosComparando dois números
Comparando dois númerosnataferraz
 
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áveisCarlos Santos
 
JavaScript - De verdade
JavaScript - De verdadeJavaScript - De verdade
JavaScript - De verdadeLuis Vendrame
 
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 info_cimol
 
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 3Elaine Cecília Gatto
 
Javascript Avançado
Javascript AvançadoJavascript Avançado
Javascript AvançadoBruno Tavares
 

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

Certificados digitais
Certificados digitaisCertificados digitais
Certificados digitaisdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Unix is my IDE
Unix is my IDEUnix is my IDE
Unix is my IDEtkramar
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Introdução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardwareIntrodução ao desenvolvimento em hardware
Introdução ao desenvolvimento em hardwaredcarneir
 

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
 

Shell Scripting