Enviado em 21/12/2010 - 11:03h
Alo pessoal! eu criei uma aplicação simples usando PyQt e Shell que informa atraves do ping se um terminal esta ligado. Pois bem no aplicativo o usuario pode adicionar novas maquinas no formato ""nome:ip"" que é adicionado no arquivo lista.dat ficando da seguinte forma:
leonam:192.168.14.181
servidor:192.168.14.254
leonardo:192.168.14.205
quem insere e exclui é um script shell abaixo:
#! /bin/bash
#atualiza lista.dat com nova relacao de ip's
function remove()
{
nova_lista=`cat lista.dat | grep -v $1`
echo -e $nova_lista > lista.dat
}
function adiciona()
{
echo -e $1 >> lista.dat
}
# $1 sinal enviado
# $2 string a ser adicionada ou removida
case $1 in
"add")adiciona $2 ;;
"sub")remove $2 ;;
esac
O problema que estou enfrentando é que ao remover a primeira linha por exemplo(ou qualquer outra que tenha sucessoras) a função remove nao reinsere a quebra de linha ficando todo o texto em uma única linha. Na hora que o arquivo é lido no python (tudo de uma vez) o programa testa uma unica linha tipo assim:
(fica um espaço entre as linhas mas é um ; nao? e se eu for excluir outra linha sera apagado todo o arquivo)
servidor:192.168.14.254 leonardo:192.168.14.205
leonam:192.168.14.181
servidor:192.168.14.254
leonardo:192.168.14.205
quem insere e exclui é um script shell abaixo:
#! /bin/bash
#atualiza lista.dat com nova relacao de ip's
function remove()
{
nova_lista=`cat lista.dat | grep -v $1`
echo -e $nova_lista > lista.dat
}
function adiciona()
{
echo -e $1 >> lista.dat
}
# $1 sinal enviado
# $2 string a ser adicionada ou removida
case $1 in
"add")adiciona $2 ;;
"sub")remove $2 ;;
esac
O problema que estou enfrentando é que ao remover a primeira linha por exemplo(ou qualquer outra que tenha sucessoras) a função remove nao reinsere a quebra de linha ficando todo o texto em uma única linha. Na hora que o arquivo é lido no python (tudo de uma vez) o programa testa uma unica linha tipo assim:
(fica um espaço entre as linhas mas é um ; nao? e se eu for excluir outra linha sera apagado todo o arquivo)
servidor:192.168.14.254 leonardo:192.168.14.205