plaspkg lite

Publicado por Reinaldo Marques de Lima 25/10/2005

[ Hits: 5.389 ]

Homepage: http://plasticossj4.wordpress.com

Download plaspkg_lite.bsh




uma outra versão do programa "plaspkg" que ao inves de abrir um menu as opções são selecionadas diretamente da linha de comando...

  



Esconder código-fonte

#! /bin/bash

##############################################################
#                                                            #
# plaspkg_lite wrote by Reinaldo Marques de Lima (Plastico)  #
# criação iniciada em: 10/2005                               #
# concluido em: em curso                                     #
# ultima atualização: 24/10/2005                             #
# descrição:                                                 #
# pacote de scripts para automatizar a execução de programas #
# roda aplicativos de uma lista, inclui e exclui aplicativos #
# da lista,mostra o conteudo da lista e mata processos que   #
# estejam travados.                                          #
#                                                            #
##############################################################
#                                                            #
# A mesma versão do pacote 'plaspkg' sem a opção de menu,    #
# ao inves disto aceita opções diretamente da linha de       #
# comando.                                                   #
#                                                            #
##############################################################


# primeira parte, ajuda do programa
#--------------------------------------------------------

if [ $# -lt 1 ]; then

        echo
        echo "    Parametro invalido: "
        echo "    Para ajuda digite plaspkg_lite.bsh --help"
        echo

elif [ $1 = --help ]; then

        echo
        echo "   *********** Ajuda do programa 'plaspkp_lite' ********** "
        echo "   *                                                     * "
        echo "   * Programa criado para automatizar a execução de      * "
        echo "   * aplicativos (xmms, amsn, firefox, etc...) primeiro  * "
        echo "   * alimente uma lista com os nomes dos programas,      * "
        echo "   * depois execute um script para iniciar estes         * "
        echo "   * programas, você pode também ver o contaudo da lista * "
        echo "   * e manipula-la adicionando e removendo alguns nomes  * "
        echo "   * desta lista ou ainda você pode finaliza um          * "
        echo "   * determinado processo.                               * "
        echo "   * As opções são:                                      * "
        echo "   *                                                     * "
        echo "   * 1 (plassee) Para ver o conteudo da lista.           * "
        echo "   * 2 (plasadd) Para adicionar nomes a lista.           * "
        echo "   * 3 (plasall) Para iniciar os Programas da lista.     * "
        echo "   * 4 (plasrm) Para removar nomes da lista.             * "
        echo "   * 5 (plaskill) Para 'Matar' os Programas ou outro     * "
        echo "   * processo qualquer.                                  * "
        echo "   *                                                     * "
        echo "   * Escolha uma das opções.                             * "
        echo "   *                                                     * "
        echo "   * execute 'plaspkg_lite.bsh [opção desejada]'         * "
        echo "   *                                                     * "
        echo "   ******************************************************* "
        echo
else

        OPCAO=$1

fi

funcao.OPCAO() {

        case $OPCAO in

        1) plassee; ;;
        2) plasadd; ;;
        3) plasall; ;;
        4) plasrm; ;;
        5) plaskill; ;;

        esac

}

# plassee: opção 1
#----------------------------------------------------------
# mostra na tela as ocorrencias contidas em 'plasall.txt'
#----------------------------------------------------------

plassee() {

        echo
        echo "    *** Opção 1 ( plassee ) ***"
        MOSTRA=`cat plasall.txt`

        echo
        echo "    O conteudo da Lista é:"
        echo
        for i in ${MOSTRA[*]}; do

                echo $i

        done

        echo

unset MOSTRA

}

# plasadd: opção 2
#----------------------------------------------------------
# alimenta uma lista de aplicativo para serem iniciados
#----------------------------------------------------------

plasadd() {

        echo
        echo "    *** Opção 2 ( plasadd ) ***"
        echo
        echo "    Digite os nomes dos programas: "
        read PROGRAMAS
        ARQUIVO="plasall.txt"

        for i in ${PROGRAMAS}; do

                if ! grep -w ${i} $plaspkg_lite.bsh > /dev/null; then

                        echo ${i} >> $ARQUIVO
                        echo "    '$i' cadastrado em 'plasall.txt'."

                else

                        echo "    Argumento '$i' já existe na lista."

                fi

        done


unset PROGRAMAS
unset ARQUIVO

}

# plasall: opção 3
#----------------------------------------------------------
# executa tudo que estiver listado em 'plasall.txt'
#----------------------------------------------------------

plasall() {

LISTA=`cat plasall.txt`

        for i in ${LISTA}; do

                if [ `ps -ef|grep $i | wc -l` -gt 1 ]; then

                        echo "Aplivativo $i ja está em execução."

                else

                        echo "iniciando aplicativo $i"
                        $i &

                fi

        done

                echo "Fim da Lista de execução, digite ENTER para sair."
                exit

unset LISTA

}

# plasrm: opção 4
#----------------------------------------------------------
# retira um nome de aplicativo da lista em 'plasall.txt'
#----------------------------------------------------------

plasrm() {

        echo
        echo "    *** Opção 4 ( plasrm ) ***"
        echo
        echo "    Digite o programa que será removido da lista:"
        read PROGRAMA

        ARQUIVO="plasall.txt"
        TESTE=`grep $PROGRAMA plasall.txt`

                if [ ! $TESTE ]; then

                        echo
                        echo "    Argumento $PROGRAMA não existe na lista"
                        echo

                else

                        sed "/$PROGRAMA/d" $ARQUIVO > .tmp
                        cat .tmp > $ARQUIVO
                        rm -f .tmp

                        echo
                        echo "    O argumento $PROGRAMA foi removido da lista"
                        echo

                fi

unset ARQUIVO
unset PROGRAMA
unset TESTE

}

# plaskill: opção 5
#----------------------------------------------------------
# mata processos buscando o PID
#----------------------------------------------------------

plaskill() {

        KILL="/bin/kill"

        echo
        echo "    *** Opção 5 ( plaskill ) ***"

        echo
        echo "    Digite o nome do processo que voce quer matar: "
        read APLICATIVO1

        echo
        echo "    Voce quer matar mais algum processo? (s/n) "
        read RESPOSTA

                if [ $RESPOSTA != "s" ] && [ $RESPOSTA != "n" ]; then

                        echo
                        echo "    ERRO: escolha somente (s) ou (n)"
                        echo

                fi

                if [ $RESPOSTA = s ]; then

                        echo
                        echo "    digite: "
                        read APLICATIVO2
                        PROCESSO=($APLICATIVO1 $APLICATIVO2)
                else

                        PROCESSO=($APLICATIVO1)

                fi

        for i in ${PROCESSO[*]}; do

                if [ $i = X ]; then

                        echo
                        echo "    ts ts, fazendo caca!!!"
                        echo

                 elif [ `ps -ef|grep $i | wc -l` -lt 2 ]; then

                        echo
                        echo "    aplicativo não esta rodando ou nome esta errado
"
                        echo

                else

                        JOB=`ps -ef|grep $i | awk {'print $2'} | head -1`

                        $KILL $JOB
        
                        echo
                        echo "O processo $JOB referente ao aplicativo $i foi fin
alizado"
                        echo

                fi

        done

unset KILL
unset JOB
unset PROCESSO

}

funcao.OPCAO

Scripts recomendados

Configuração pós instalação do Slackware

Converte acentos e caracteres especiais para codificação HTML

Autenticado Velox Empresarial II

Mudança automatica de papel de parede no fluxbox

Brincando com recursividade


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts