ajuda no script

1. ajuda no script

Rodrigo P Freitas
rpfreitas

(usa Linux Mint)

Enviado em 04/12/2009 - 19:01h

ola pessoal estou precisando fazer um script que leia uma variavel e logo em seguida adcione o testo em algum arquivo. Até ai eu fui blz, so que eu precisei fazer uma comparação tipo se a palavra que estou adcionando já tem no aquivo e não deixar adcionar. e possivel fazer isto?

O meu pensamento foi dar um more ou cat no arquivo e usando a variavel lista por |grep e fazer a comparação. mas isto não funcionou.
existe algum comando que compara, ou até mesmo adciona em uma variavel e depois eu comparo as duas.
aguardo resposta


  


2. Re: ajuda no script

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 04/12/2009 - 19:37h

checa ()
{
if [ -f arquivo ]; then
insere
else
touch arquivo
insere
fi
}

insere ()
{
Controle=`grep -c $variavel$ arquivo`
if [ $Controle -eq 0 ]; then
echo $variavel >> arquivo
else
echo "variavel ja existe no arquivo"
fi
}


echo "Digite a variavel"
read variavel
checa


3. Re: ajuda no script

Rodrigo P Freitas
rpfreitas

(usa Linux Mint)

Enviado em 04/12/2009 - 21:51h

Amigo muito obrigado pela ajuda. funcionou sera que poderia esplicar este script por favor? eu estou tentando entender e estou meio perdido.
mas funcionou.
se pude ficarei muito grato.


4. Re: ajuda no script

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 07/12/2009 - 08:29h

Não sei se você está acostumado a trabalhar com funções, são como scripts independentes dentro do seu script.

A estrutura é assim

menu ()
{
echo "MENU PRINCIPAL"
echo "1. Opcao A"
echo "2. Opcao B"
read opcao
}

Então, para apresentar o menu principal, pasta fazer uma chamada a função menu ... acho que vai ficar mais claro abaixo, mas vamos começar a ler o script de baixo para cima, pois uma função, apesar de estar no seu script só é executada quando chamada..

echo "Digite a variavel" # um echo simples
read variavel # abre espaço para interação do usuário,
# que digitará o valor da variavel
checa # Chama a função chamada "checa"

checa () # Nome da função
{
if [ -f arquivo ]; then # Checa se o arquivo de nome "arquivo" existe,
# por que caso contrário você tomará um erro
insere # Se existe o arquivo, chama o módulo insere
else # Se não
touch arquivo # Cria o arquivo
insere # e chama o módulo ou função "insere"
fi
}

insere () # Nome da Função
{
Controle=`grep -c $variavel$ arquivo` # dá um grep pelo valor da variável,
# trazendo só a quantidade de linhas (-c)
# o $ no final da variável fala que o
# valor tem que exatamente, ou seja,
# se a variável é ana, não conta anarquia
# ou juliana.
if [ $Controle -eq 0 ]; then # se trouxer 0 linhas, significa que não
# existe o texto no arquivo
echo $variavel >> arquivo # Ai, insere ele no final do arquivo
else # Se der mais que 0, significa que já
# exite, e ai ...
echo "variavel ja existe no arquivo" # Só avisa o usuário que já existe
fi
}

Você deve estar se perguntando, mas se eu li de traz para frente, por que raios você não escreveu ela na ordem!!! rsss

Bom cara, o script é interpretado de forma sequencial, mesmo que as funções não sejam executadas, elas tem que ser lidas primeiro antes de chamadas..

Faça a esperiência ... coloque os módulos abaixo do início ..

================================

echo "Digite a variavel"
read variavel
checa

checa ()
{
if [ -f arquivo ]; then
insere
else
touch arquivo
insere
fi
}

insere ()
{
Controle=`grep -c $variavel$ arquivo`
if [ $Controle -eq 0 ]; then
echo $variavel >> arquivo
else
echo "variavel ja existe no arquivo"
fi
=====================================


Beleza?! Deu pra entender ...
Dá pra fazer sem as funções.. Claro que dá, mas eu acho que fica mais organizado ... aliás ... se vc tiver ceteza que o arquivo vai sempre existir o script seria só ...

echo "Digite a variavel"
read variavel
Controle=`grep -c $variavel$ arquivo`
if [ $Controle -eq 0 ]; then
echo $variavel >> arquivo
else
echo "variavel ja existe no arquivo"
fi

Agora como ele tem duas funções distintas ... uma checar a existencia do arquivo, outra é inserir, aí por organização prefiro fazer assim.







5. Re: ajuda no script

Daniel Fernandes
volcom

(usa Debian)

Enviado em 07/12/2009 - 09:28h

Muito bem explicado!

Me esclareceu algumas dúvidas também... hehehe






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts