comando - if [RESOLVIDO]

1. comando - if [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 13/12/2012 - 11:39h

Neste meu script, ele tem um contador+1 que quando chegar 50 ele terá de parar e sair, só que não estou tendo êxito.

Agradeço ajuda.

Geraldo.


#!/bin/bash

while : ; do

cont=$(($cont+1))

if [ "$cont < 50" ] ;
then
echo $cont
seq 1 60 | shuf | tail -n 6 | sort -g | sed ':a;$!N;s/\n/-/g;ta' >> "/sbin/numeros"
else
echo "acabou"
fi

done
exit



  


2. MELHOR RESPOSTA

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 13/12/2012 - 15:03h

Notei os seguintes pontos no seu script:
1) Seria bom vc definir um valor pra variável cont, pois caso ela já tenha um valor definido, poderia gerar um loop maior ou menor que o esperado;

2) Se vc for trabalhar com números nas condições, use os comparativos: lt, ge, gt, le, eq e ne (depois pesquise sobre eles);

3) Não faz sentido o exit estar após o done, pois desta forma o looping será infinito, portanto inseri o mesmo no else (quando o contador for mais que 50).

Segue o script:



#!/bin/bash

cont=0

while : ;
do

if [ $cont -lt 50 ]; then

echo $cont
seq 1 60 | shuf | tail -n 6 | sort -g | sed ':a;$!N;s/\n/-/g;ta' >> "/sbin/numeros"

else

echo "acabou"
exit

fi

cont=`expr $cont + 1`

done



3. Re: comando - if [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 14/12/2012 - 13:26h

Alexandre, agora funcionou perfeitamente... vou marcá-lo com resolvido.

Muito obrigado.

Tenho ainda um dúvida.

o sistema cria um arquivo assim:
2-3-23-25-27-48
3-7-8-13-17-22
15-23-26-30-34-43
5-8-23-40-45-60
2-4-6-10-31-47
8-9-39-47-55-60
2-27-38-47-54-56
9-11-12-32-36-53

Tem algum comando no linux onde eu pudesse alterar os valores do arquivo de "x" para "xx" ou seja, onde está "2-3-23-25-27-48" passar para "02-03-23-25-27-48"?

"


4. Re: comando - if [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 17/12/2012 - 13:10h

Tudo é possível na programação, preciso de um tempo pra montar isso.
Dica: quando vc tiver outra dúvida abra um novo tópico! :-)


5. Re: comando - if [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 17/12/2012 - 18:53h

Vamos a resolução..
Suponha que seu arquivo chama-se numeros.txt e que o arquivo final (com o zero no início de cada número de 1 a 9) seja chamado de final.txt:



#!/bin/bash

cat numeros.txt | sed 's/^/-/g' | sed 's/$/-/g' > arq1

for i in `seq 1 9`
do

sed -i "s/-$i-/-0$i-/" arq1

done

cat arq1 | sed 's/^-//g' | sed 's/-$//g' > final.txt

rm -f arq1







6. Re: comando - if [RESOLVIDO]

Geraldo Augusto de Oliveira Quites
geraldoquites

(usa Suse)

Enviado em 19/12/2012 - 08:07h

Alexandre, valeu demais... está rodando perfeitamente...

Obrigado.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts