plaspkg
Publicado por Reinaldo Marques de Lima 25/10/2005
[ Hits: 4.724 ]
Homepage: http://plasticossj4.wordpress.com
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.
#! /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
Download do LXQT Slackware Current
Cálculo da Aplicação Financeira
Script para montar/desmontar cdrom e disquete
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (4)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (4)
Alguém executou um rm e quase mata a Pixar! (1)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









