plaspkg lite
Publicado por Reinaldo Marques de Lima 25/10/2005
[ Hits: 5.778 ]
Homepage: http://plasticossj4.wordpress.com
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...
#! /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
Text User Interface (TUI) com whiptail
Apagar automaticamente arquivos de /var/log*
Script para montar/desmontar cdrom e disquete
Nenhum comentário foi encontrado.
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









