Daniel Carneiro
Shell Script
Parte III
Function
● Sintaxe:
function NAME { commands }
NAME() { commands }
● Obs:
● Parametros são recebidos como $1, $2, …
● Para...
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 sig...
Test
● Retorna exit code 0 se a expressão for
verdadeira ou 1 caso contrário
● Pode ser chamado pelo seu equivalente [
● E...
Test
● =, != → Para strings
– [ “aa” = “ab” ]
● -eq, -ne → Para inteiros
– [ 1 ­eq $X ]
● -gt, -lt, -ge, le → >, <, ≥, ≤
●...
Test
● -s → arquivo normal com size > 0
● -nt, -ot → newer than, older than
– [ “a.sql” -nt b.sql ]
● -r, -w, -x → permiss...
IF
● if <commands>; then <commands>; 
else <commands>; fi
● if <commands>; then
<commands>
elif <commands>; then
<commands...
IF
● if [ ­n $nome ]; then echo $nome; fi
● if [ ­f $arq ­a ­r $arq ]; then
  echo Contando ${arq}...
  wc ­l $arq
else 
 ...
IF
if [ ­f $arq ­a ­r $arq ]; then
  echo ­n Contando ${arq}...
  linhas=$(wc ­l $arq)
  linhas=${linhas/ */}
  if [ $linh...
Upcoming SlideShare
Loading in …5
×

Shell Scripting

1,037 views

Published on

Terceira parte da apresentação sobre Shell Scripting realizada na Bluesoft

Confira o video em http://www.vimeo.com/16967406

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,037
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Shell Scripting

  1. 1. Daniel Carneiro Shell Script Parte III
  2. 2. Function ● Sintaxe: function NAME { commands } NAME() { commands } ● Obs: ● Parametros são recebidos como $1, $2, … ● Parametros não são declarados na função
  3. 3. Function fn1() {   echo fn1 } function fn2 {   echo fn2 $1   fn1 } fn1 fn2 teste
  4. 4. 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 $?
  5. 5. 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” ]
  6. 6. 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” ]
  7. 7. 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 ]
  8. 8. IF ● if <commands>; then <commands>; else <commands>; fi ● if <commands>; then <commands> elif <commands>; then <commands> else <commands> fi
  9. 9. 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
  10. 10. 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

×