7 de dezembro de 2010

Shell Script: $? e outros ensinamentos

Cada comando executado em shell tem um codigo de retorno, útil em script para conferir se falhou ou foi executado com sucesso, este resultado fica armazenado na variavel $?, ele muda a cada comando, tanto faz se foi na linha de comando ou dentro do script, atualizado a cada comando, echo $? exibe o resultado do ultimo comando, retornando:

 
   0 (zero) significa que o comando anterior foi executado com sucesso.
   1 (um) e qualquer valor diferente de zero ( != 0) indica que ocorreu algum erro.
   2  erro nos comandos do script, geralmete erro de sintaxe, digitação,
   127 = command not found, quando digita comando não existente.


cat /tmp/testar
  #!/bin/bash
  mkdir /tmp/teste
  if [ $? -eq 0 ];then
    echo $?
    echo "comando executado com sucesso!"
    else
    echo $?
    echo "falha na execução do comando."
    exit
  fi


<-------------------------------------------------------------------------------------------------->
Test
 
Agora, vamos falar de alguns parâmetros legais do comando test - muito utilizado em shell script.

test ­-r  Testa se tem permissão de leitura
test ­-w Testa se tem permissão de escrita
test ­-x Testa se tem permissão de execução
test ­-f  Testa se é um arquivo regular
test ­-d Testa se é um diretório
test ­-u Testa se seu SUID está ativado
test ­-g Testa se seu SGID está ativado
test ­-s Testa se seu tamanho é maior que zero


#!/bin/bash
  MEUMAC=`/sbin/ifconfig eth0 | grep HWaddr | awk '{print $5}'`
  if [ $MEUMAC = "00:08:54:2C:DD:FD" ]; then
    echo "estou na maquina que deve rodar o script"
    #seus comandos aqui
    else
    echo "MAC não confere, maquina diferente, altere o MAC no script"
  fi

# OU

  meumac=`ifconfig | grep "00:08:54:2C:DD:FD"`
  if [ -n "$meumac" ]; then
    echo "estou na maquina que deve rodar o script"
    #seus comandos aqui
  fi

Isso serve pra vc fazer alguma coisa amarrando ao mac address.

Nenhum comentário: