plaspkg dialog
Publicado por Reinaldo Marques de Lima 23/11/2005
[ Hits: 5.120 ]
Homepage: http://plasticossj4.wordpress.com
Uma nove vesão de um script que eu ja havia postado, agora em dialog
#! /bin/bash
##################################################################
# #
# plaspkg_dialog wrote by Reinaldo Marques de Lima (Plastico) #
# criação iniciada em: 11/2005 #
# concluido em: em andamento #
# ultima atualização: 18/11/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. #
# #
# 05/11 - Inicio da implementação dos codigos do programa #
# 'plaspkg' para dialog, Apresentação e opção 'plassee' #
# 07/11 - Inplementação da Ajuda do programa para dialog #
# 08/11 - Implementeção do codigo da opção plasadd #
# 17/11 - Implementação dos codigos das opções plaskill e #
# plasrm #
# 18/11 - Implementação do codigo da opção plasall #
# #
##################################################################
# #
# A mesma versão do pacote 'plaspkg' em versão com dialog #
# #
##################################################################
CREDITOS='plaspkg_dialog criado por Reinaldo Marques de Lima (Plastico)'
#---------------------------------------------------------#
# primeiro dialog, apresentação do programa #
#---------------------------------------------------------#
APRESENTACAO='
Bem vindo ao programa plaspkg versao 0.1
Escrito por Reinaldo Marques de Lima (Plastico)
Este programa eh de codigo aberto e livre para ser
alterado de acordo com as nercessidades de cada
usuario.
------------------- Atencao --------------------
Se esta for a primeira vez que voce estah usando o
programa, convem ler o conteudo da Opcao 6 ( Ajuda )
e logo em seguida inserir os primeiros dado com a
Opcao 2 ( plasadd ).
'
dialog --backtitle "$CREDITOS" \
--title 'Apresentacao' \
--msgbox "$APRESENTACAO" \
0 0 &&
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
#---------------------------------------------------------#
# segundo dialog, menu do programa #
#---------------------------------------------------------#
OPCAO=$( dialog --stdout \
--backtitle "$CREDITOS" \
--title 'Menu' \
--menu 'Escolha a opcao desejada e de OK' \
0 0 0 \
1 'Plassee, ve o conteudo da lista' \
2 'Plasadd, adiciona nomes a lista' \
3 'Plasall, executa o que estiver na lista' \
4 'Plasrm, remove ocorrencias da lista' \
5 'Plaskill, mata um processo qualquer' \
6 'Ajuda' )
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
#---------------------------------------------------------#
# aqui entra o case que executa a opção escolhida #
#---------------------------------------------------------#
funcao.OPCAO() {
case "$OPCAO" in
1) plassee; ;;
2) plasadd; ;;
3) plasall; ;;
4) plasrm; ;;
5) plaskill; ;;
6) ajuda; ;;
esac
}
#---------------------------------------------------------#
# terceiro dialog, plassee: opção 1 #
#---------------------------------------------------------#
# mostra na tela as ocorrencias contidas em 'plasall.txt' #
#---------------------------------------------------------#
plassee() {
dialog --backtitle "$CREDITOS" \
--title '( Plassee ) o conteudo do arquivo eh:' \
--textbox plasall.txt \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
}
#---------------------------------------------------------#
# quarto dialog, plasadd: opção 2 #
#---------------------------------------------------------#
# alimenta uma lista de aplicativo para serem iniciados #
#---------------------------------------------------------#
plasadd() {
PROGRAMAS=$( dialog --stdout \
--backtitle "$CREDITOS" \
--title '( Plasadd ) Insere programas a uma lista.' \
--inputbox 'Digite o nome do programa:' \
0 0 )
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
ARQUIVO="plasall.txt"
TESTE=`cat plasall.txt | grep $PROGRAMAS`
if [ $PROGRAMAS = $TESTE ]; then
dialog --backtitle "$CREDITOS" \
--title '( Plasadd ) Insere programas a uma lista' \
--msgbox 'Nome ja existe na lista' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
else
for i in ${PROGRAMAS}; do
echo ${i} >> $ARQUIVO
done
dialog --backtitle "$CREDITOS" \
--title '( Plasadd ) Insere programas a uma lista' \
--msgbox 'O programa foi cadastrado com sucesso' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
fi
}
#---------------------------------------------------------#
# quinto dialog, 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
dialog --backtitle "$CREDITOS" \
--title '( Plasall ) Inicia aplicativos' \
--infobox ' Aplivativo ja esta em execucao.' \
0 0
else
dialog --backtitle "$CREDITOS" \
--title '( Plasall ) Inicia aplicativos' \
--infobox 'Iniciando aplicativo, aguarde...' \
0 0
$i & &> /dev/null
sleep 3
fi
done
dialog --backtitle "$CREDITOS" \
--title '( Plasall ) Inicia aplicativos' \
--msgbox 'Fim do processo\n \
de OK, Cancelar ou Esc para sair' \
0 0
}
#---------------------------------------------------------#
# sexto dialog, plasrm: opção 4 #
#---------------------------------------------------------#
# retira um nome de aplicativo da lista em 'plasall.txt' #
#---------------------------------------------------------#
plasrm() {
ARQUIVO="plasall.txt"
PROGRAMA=$( dialog --stdout \
--backtitle "$CREDITOS" \
--title '( Plasrm ) Remove ocorrencias da lista' \
--inputbox 'Digite o nome do programa que sera removido' \
0 0 )
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
TESTE=`grep $PROGRAMA plasall.txt`
if [ ! $TESTE ]; then
dialog --backtitle "$CREDITOS" \
--title '( Plasrm ) Remove ocorrencias da lista' \
--msgbox 'Argumento nao existe na lista.' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
else
sed "/$PROGRAMA/d" $ARQUIVO > .tmp
cat .tmp > $ARQUIVO
rm -f .tmp
dialog --backtitle "$CREDITOS" \
--title '( Plasrm ) Remove ocorrencias da lista' \
--msgbox 'O argumento foi removido da lista.' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
fi
}
#---------------------------------------------------------#
# setimo dialog, plaskill: opção 5 #
#---------------------------------------------------------#
# mata processos buscando o PID #
#---------------------------------------------------------#
plaskill() {
KILL="/bin/kill"
APLICATIVO1=$( dialog --stdout \
--backtitle "$CREDITOS" \
--title '( Plaskill ) Mata processos travados' \
--inputbox 'Digite o nome do processo que voce quer matar:' \
0 0 )
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
dialog --stdout \
--backtitle "$CREDITOS" \
--title '( Plaskill ) Atencao' \
--yesno 'Deseja Matar mais algum processo?' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
if [ $? -eq 1 ]; then
APLICATIVO2=$( dialog --stdout \
--backtitle "$CREDITOS" \
--title '( Plaskill ) Segundo processo a ser terminado' \
--inputbox 'Por favor digite outro nome' \
0 0 )
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
PROCESSO=($APLICATIVO1 $APLICATIVO2)
else
PROCESSO=($APLICATIVO1)
fi
for i in ${PROCESSO[*]}; do
if [ $i = X ]; then
dialog --backtitle "$CREDITOS" \
--title '( Plaskill ) Aviso' \
--msgbox 'ts ts, fazendo caca!!!' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
elif [ `ps -ef|grep $i | wc -l` -lt 2 ]; then
dialog --backtitle "$CREDITOS" \
--title '( Plaskill ) Aviso' \
--msgbox 'Aplicativo nao esta rodando ou nome esta errado' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
else
JOB=`ps -ef|grep $i | awk {'print $2'} | head -1`
$KILL $JOB
dialog --backtitle "$CREDITOS" \
--title '( Plaskill ) Aviso' \
--msgbox 'Processo(s) finalizado(s) com sucesso' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
fi
done
}
#---------------------------------------------------------#
# oitavo dialog, ajuda: opção 6 #
#---------------------------------------------------------#
# ajuda do programa #
#---------------------------------------------------------#
ajuda() {
AJUDA='
Ajuda do Programa 'plaspkg'
Este programa foi criado para automatiza a execucao de
alguns programas, por exemplo ( amsn, firefox, xmms)
ou qualquer outro programa de sua escolha.
Escolha uma das opcoes do menu para uma determinada funcao:
1) plassee - mostra na tela o conteudo do arquivo
'plasall.txt' que eh a lista de execucao de programas.
2) plasadd - adiciona aplicativos a uma lista de execucao,
essa lista sera usada pelo 'plasall' para executar esses
aplicativos.
Obs.: Se for a primeira vez que voce estiver usando essa
opcao, pode aparecer uma mensagem de erro dizendo que o
arquivo 'plasall.txt' nao foi encontrado, mas isso acontece
somente na primeira vez, e depois o proprio programa ja
cria ele, se caso voce quiser evitar isso,basta criar no
seu home este arquivo;
3) plasall - executa todos os aplicativos que estiverem
listados no arquivo plasall.txt e depois sai do programa;
4) plasrm - simplesmente tira da lista os aplicativos
que forem digitados ( faz o inverso da opcao plasadd);
5) plaskill - busca processos pelo numero e da um kill
no processo, serve para todos os processos, menos para
o X ;) e sai do programa.'
dialog --backtitle "$CREDITOS" \
--title 'Ajuda' \
--msgbox "$AJUDA" \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
}
funcao.OPCAO
echo 'Obrigado por usar o programa Plaspkg versão dialog'
xamore - um "more" simples em Xdialog
Somatório de valores do comando ps
Zshortcut - criar atalhos no menu de programas
Configuração de rede wireless (WPA)
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









