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: Flavio Junior
Subject: Re: [shell-script] Echo e executa: superecho
Date: Tue, 18 Mar 2008 08:49:24 -0300

Belo "script" ...

A assinatura então nem se fala...


--
Flavio do Carmo Junior


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"
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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