plaspkg

Publicado por Reinaldo Marques de Lima 25/10/2005

[ Hits: 4.456 ]

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

Intervalo de Linhas em Texto

Listar bolsas disponíveis no Senac

Script que conta quantas barras tem em um diretorio

Personalizando o seu shell com bashrc_dahora

Montando compartilhamento de máquinas Windows no Linux


  

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