shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Echo e executa: superecho


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Echo e executa: superecho
Date: Wed, 19 Mar 2008 14:30:48 -0300

Bom script

meus dois centavos, seria interessante vc testar se a string é ou não
nula através dos operadores -s e -n

if [[ -z $ASDASDASD ]]; then
   echo eh nula
else
  echo nao eh nula
fi

o -n é o contrario, vc tambem pode fazer [[ | -z $VARIAVEL ]] se
quiser reforçar a lógica.

2008/3/18 Maicon Vinicius Nunes <address@hidden>:
>
>
> Procurei alguma forma de, em um script, chamar um comando de modo que
>  exibisse a linha de comando chamada e depois o executasse. Não o
>  encontrei, e fiz esse superecho. Tá meio tosco, mas me é util aqui em logs.
>
>  Abaixo segue o script, depois um exemplo de uso e a saida em arquivo:
>
>  superecho:
>
>  #!/bin/bash
>  #######################################
>
>  if [ $# = 0 ]
>  then
>  echo "Use superecho [opcoes...]"
>  echo "Opcoes:"
>  echo "-c \"comando entre aspas\""
>  echo "-o \"arquivo para saida da execucao\""
>  echo "-O \"arquivo para saida da linha de comando executada \""
>  echo "Se -o ou -O nao for usado, sai para STDOUT"
>  else
>
>  while getopts "c:o:O:" OPCAO
>  do
>  case "$OPCAO" in
>  "o")
>  SAIDACOMANDO="$OPTARG"
>  ;;
>  "O")
>  SAIDA="$OPTARG"
>  ;;
>  "c")
>  COMANDO="$OPTARG"
>  ;;
>  esac
>  done
>
>  if [ ! "$COMANDO" == "" ]
>  then
>  if [ "$SAIDA" == "" ]
>  then
>  echo "superecho: $COMANDO"
>  if [ "$SAIDACOMANDO" == "" ]
>  then
>  $COMANDO
>  else
>  $COMANDO >> $SAIDACOMANDO
>  fi
>  else
>  echo "superecho: $COMANDO" >> "$SAIDA"
>  if [ "$SAIDACOMANDO" == "" ]
>  then
>  $COMANDO
>  else
>  $COMANDO >> $SAIDACOMANDO
>  fi
>  fi
>  else
>  echo "A opcao -c é obrigatória"
>
>  fi
>  fi
>
>  ######################################################
>
>  Exemplo de uso:
>
>  #!/bin/bash
>  LOG=/tmp/teste/saida
>  superecho -c "ls /" -O $LOG -o $LOG
>  superecho -c "cat /proc/net/dev" -O $LOG -o $LOG
>
>  #######################################################
>
>  Conteúdo da saida:
>  [ root@mknote:/tmp/teste ]# cat /tmp/teste/saida
>  superecho: ls /
>  bin
>  boot
>  dev
>  etc
>  home
>  lib
>  man
>  media
>  mnt
>  nohup.out
>  opt
>  proc
>  rede
>  rest
>  root
>  sbin
>  sh2log
>  share
>  srv
>  suspend_file
>  sys
>  tmp
>  usr
>  var
>  vista
>  superecho: cat /proc/net/dev
>  Inter-| Receive | Transmit
>  face |bytes packets errs drop fifo frame compressed
>  multicast|bytes packets errs drop fifo colls carrier compressed
>  lo: 56119 549 0 0 0 0 0 0
>  56119 549 0 0 0 0 0 0
>  eth0: 0 0 0 0 0 0 0 0
>  0 0 0 0 0 0 0 0
>  eth1:116976024 137066 0 0 0 0 0 0
>  12442324 105993 0 0 0 0 0 0
>  #####################################################
>
>  Ou seja, vai arquivando o comando executado e a saída dele. Numa saída
>  como essa, é possível dar um grep superecho e ver apenas os comandos
>  executados. E é claro, é possível também não guardar a saída dos
>  comandos, apenas a linha de comando.
>  Espero que sirva pra alguém.
>
>  --
>  Maicon Vinicius Nunes
>  (51) 9355-1734
>
>  # Imprima esse e-mail! Ao imprimir você está incentivando
>  # uma indústria que emprega milhares de pessoas e gera divisas
>  # para o país!
>
>  Ubuntu [ùbúntú]:
>  1. Old African word meaning "I have no idea how to configure Slackware"
>
>  



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"


reply via email to

[Prev in Thread] Current Thread [Next in Thread]