[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Echo e executa: superecho
From: |
Maicon Vinicius Nunes |
Subject: |
Echo e executa: superecho |
Date: |
Tue, 18 Mar 2008 04:49:41 -0300 |
User-agent: |
Thunderbird 2.0.0.12 (X11/20080213) |
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"
- Echo e executa: superecho,
Maicon Vinicius Nunes <=