plaspkg

Publicado por Reinaldo Marques de Lima 25/10/2005

[ Hits: 4.332 ]

Homepage: http://plasticossj4.wordpress.com

Download plaspkg.bsh




Programa criado para automatizar a execução de aplicativos (xmms, amsn, firefox, etc...) primeiro alimente uma lista com os nomes dos programas, depois execute um script para iniciar estes programas, você pode também ver o contaudo da lista e manipula-la adicionando e removendo alguns nomes   desta lista ou ainda você pode finaliza um  determinado processo.

  



Esconder código-fonte

#! /bin/bash

# inicio do programa, condições de uso
#----------------------------------------------------------

# apresenta o programa e as opções do menu
#----------------------------------------------------------

if [ $# != 0 ]; then

        echo
        echo "    ERRO:"
        echo "    O Pacote 'plaspkg' não aceita"
        echo "    Parametro inseridos diretamente"
        echo "    da linha de comando"
        echo "    Saindo Agora" && sleep 3
        echo
        clear
        exit

fi

echo
echo "    ******* Bem vindo ao programa 'plaspkg versão 0.1'*******"
echo "    *                                                       *"
echo "    *  Escrito por Reinaldo Marques de Lima (Plastico)      *"
echo "    *  Este programa é de codigo aberto e livre para ser    *"
echo "    *  alterado de acordo com as nercessidades de cada      *"
echo "    *  usuario.                                             *"
echo "    *                                                       *"
echo "    *                ***{[( Atenção )]}***                  *"
echo "    *                                                       *"
echo "    * Se esta for a primeira vez que você está usando o     *"
echo "    * programa, convem ler o conteudo da Opção 6 ( Ajuda )  *"
echo "    * e logo em seguida inserir os primeiros dado com a     *"
echo "    * Opção 2 ( plasadd ).                                  *"
echo "    *                                                       *"
echo "    *********************************************************"
echo

menu() {

        echo "    Opções: "
        echo
        echo "    Digite: "
        echo "    1 - Para 'plassee'"
        echo "    2 - Para 'plasadd'"
        echo "    3 - Para 'plasall'"
        echo "    4 - Para 'plasrm'"
        echo "    5 - Para 'plaskill'"
        echo "    6 - Para Ajuda"
        echo "    7 - Para Sair"
        echo
        echo "    Escolha uma opção: "
        echo
        read OPCAO 
        
        if [ $OPCAO -lt 1 ] || [ $OPCAO -gt 7 ]; then
#       if [ $OPCAO -ne 1 || 2 || 3 || 4 || 5 || 6 || 7 ]; then 
                echo 
                echo "    Parametro invalido, saindo agora"
                echo
                sleep 2
                clear
                exit

        fi

        funcao.OPCAO

}

# segunda parte, inclui cada programa nas funções
#----------------------------------------------------------

# comando 'case' para direcionar a opção do menu
#----------------------------------------------------------

funcao.OPCAO() {

        case $OPCAO in

        1) plassee; menu; ;;
        2) plasadd; menu; ;;
        3) plasall; ;;
        4) plasrm; menu; ;;
        5) plaskill; menu; ;;
        6) ajuda; menu; ;;
        7) sair; ;;

        esac

}

# terceira parte, rotinas
#----------------------------------------------------------

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

plassee() {

        MOSTRA=`cat plasall.txt`

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

                echo $i

        done
        echo
        echo "    Voltando ao Menu"
        echo
        sleep 5
        clear

unset MOSTRA

}

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

plasadd() {

        echo
        echo "    Digite os nomes dos programas: "
        read PROGRAMAS
        ARQUIVO="plasall.txt"

                for i in ${PROGRAMAS}; do

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

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

                         else

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

                        fi

                done

        echo "    Voltando ao menu" && sleep 5 && clear
        echo

unset PROGRAMAS
unset ARQUIVO

}

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

plasall() {

LISTA=`cat plasall.txt`

        echo "    Iniciando a Lista de execução" && sleep 3
        echo
        for i in ${LISTA}; do

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

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

                else

                        echo "iniciando aplicativo $i"
                        echo
                        $i &

                fi

        done

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

unset LISTA

}

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

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 "    Voltando ao menu" && sleep 5 && clear
                        echo

                else

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

                        echo
                        echo "    O argumento $PROGRAMA foi removido da lista"
                        echo "    Voltando ao menu" && sleep 5 && clear
                        echo

                fi

unset ARQUIVO
unset PROGRAMA
unset TESTE

}


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

plaskill() {

        KILL="/bin/kill"

        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 "    Saindo do Programa" && sleep 5 && exit 
                        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 "    Voltando ao menu" && sleep 5 && clear
                        echo

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

                        echo
                        echo "    aplicativo não esta rodando ou nome esta errado"
                        echo "    Voltando ao menu" && sleep 5 && clear
                        echo

                else

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

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

                fi

        done

unset KILL
unset JOB
unset PROCESSO

}

# ajuda: opção 6
#----------------------------------------------------------
# explicação basica de como usar o programa
#----------------------------------------------------------

ajuda() {

        echo "  *************************************************"
        echo "  *                                               *"
        echo "  *  Ajuda do Programa 'plaspkg'                  *"
        echo "  *                                               *"
        echo "  * Este programa foi criado para automatiza      *"
        echo "  * a execução de alguns programas, por exemplo   *"
        echo "  * ( amsn, firefox, xmms) ou qualquer outro      *"
        echo "  * programa de sua escolha.                      *"
        echo "  *                                               *"
        echo "  * Escolha uma das opções do menu para uma       *"
        echo "  * determinada função:                           *"
        echo "  *                                               *"
        echo "  * 1) plassee - mostra na tela o conteudo do     *"
        echo "  * arquivo 'plasall.txt' que é a lista de        *"
        echo "  *  execução de programas.                       *"
        echo "  *                                               *"
        echo "  *                                               *"
        echo "  * 2) plasadd - adiciona aplicativos a uma       *"
        echo "  * lista de execução, essa lista será usada      *"
        echo "  * pelo 'plasall' para executar esses            *"
        echo "  * aplicativos.                                  *"
        echo "  * Obs.: Se for a primeira vez que você          *"
        echo "  * estiver usando essa opção, pode aparecer      *"
        echo "  * uma mensagem de erro dizendo que o arquivo    *"
        echo "  * 'plasall.txt' não foi encontrado, mas isso    *"
        echo "  * acontece somente na primeira vez, e depois    *"
        echo "  * o proprio programa ja cria ele, se caso       *"
        echo "  * você quiser evitar isso, basta criar no seu   *"
        echo "  * home este arquivo;                            *"
        echo "  *                                               *"
        echo "  *                                               *"
        echo "  * 3) plasall - executa todos os aplicativos     *"
        echo "  * que estiverem listados no arquivo plasall.txt *"
        echo "  * e depois sai do programa;                     *"
        echo "  *                                               *"
        echo "  *                                               *"
        echo "  * 4) plasrm - simplesmente tira da lista os     *"
        echo "  * aplicativos que forem digitados ( faz o       *"
        echo "  * inverso da opção plasadd);                    *"
        echo "  *                                               *"
        echo "  *                                               *"
        echo "  * 5) plaskill - busca processos pelo numero     *"
        echo "  * e da um kill no processo, serve para todos    *"
        echo "  * os processos, menos para o X ;) e sai do      *"
        echo "  * programa.                                     *"
        echo "  *                                               *"
        echo "  *************************************************"
        echo
        echo "    Voltando para o menu em 1 minuto!!! " && sleep 60 && clear
        echo

}

# sair: opção 7
#----------------------------------------------------------
# esse não é dificil entender
#----------------------------------------------------------

sair() {

        echo
        echo "    Saindo do programa..."
        echo "    Até logo. " && sleep 2
        echo
        clear
        exit 
}

menu

Scripts recomendados

Shell Script para Guia Foca Linux

Script para conversao de video compativel com PS3

Somatório de valores do comando ps

Auto-montador de partições

Validador mac-address em shell script


  

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