Shell Script

1. Shell Script

Alexandre Bueno dos Santos
Alekeb

(usa Outra)

Enviado em 24/05/2015 - 18:38h

Olá a todos. Estou com um problema em shell script. Recentemente comecei a fazer um pequeno programa nessa linguagem. O objetivo do script é ler um arquivo, verificar a quantidade de elementos numéricos que existe dentro dele e em seguida, se o número de elementos numéricos for menor que X, adicionar números até que a quantidade de elementos seja igual a X. Se o número que for inserido já existir no arquivo, não inserir o número. Tentei de diversas formas. Algumas delas usando grep e variáveis, outras com loop while. Porém em todas elas, o script não para de adicionar número, mesmo após a quantidade de números no arquivo ter chegado a 15. Admito que não sei como proceder daqui pra frente. Vejam o que fiz até aqui, usando IF.

Pessoal , eu sei que esse programa está horroroso e que devem existir formas muito melhores de fazer isso, mas o que eu quero saber é? Por que não funciona?? Porquê ele insere números, mesmo depois de se passados os 7 máximos permitidos?

#!/bin/bash

## Brincando de Shell
##Vamos pegar um arquivo que contém 3 números inscritos e inserir nele números de 1 a 10
## até que tenhamos 7 números. Os números que já existem no arquivo, não podem ser repetidos.

echo "Escolha o seu arquivo: " : read arquivo

A=`grep -c '01' "$arquivo"`;
B=`grep -c '02' "$arquivo"`;
C=`grep -c '03' "$arquivo"`;
D=`grep -c '04' "$arquivo"`;
E=`grep -c '05' "$arquivo"`;
F=`grep -c '06' "$arquivo"`;
E=`grep -c '07' "$arquivo"`;
F=`grep -c '8' "$arquivo"`;
G=`grep -c '9' "$arquivo"`;
H=`grep -c '10' "$arquivo"`;

let KA="$A+$B+$C+$D+$E+$F+$G+$H"

KJ=7

if [ $KA -lt $KJ ]
then
grep -q -F '01' "$jogo" || echo -n " 01" >> "$arquivo"
fi


if [ $KA -lt $KJ ]
then
grep -q -F '02' "$jogo" || echo -n " 02" >> "arquivo"

fi


if [ $KA -lt $KJ ]
then
grep -q -F '03' "$jogo" || echo -n " 03" >> "$arquivo"
fi


if [ $KA -lt $KJ ]
then
grep -q -F '04' "$jogo" || echo -n " 04" >> "$arquivo"
fi


if [ $KA -lt $KJ ]
then
grep -q -F '05' "$jogo" || echo -n " 05" >> "$arquivo"
fi


if [ $KA -lt $KJ ]
then
grep -q -F ' 06' "$jogo" || echo -n " 06" >> "$arquivo"
fi


if [ $KA -lt $KJ ]
then
grep -q -F '07' "$jogo" || echo -n " 07" >> "$arquivo"
fi


if [ $KA -lt $KJ ]
then
grep -q -F '8' "$jogo" || echo -n " 8" >> "$arquivo"
fi

if [ $KA -lt $KJ ]
then
grep -q -F '9' "$jogo" || echo -n " 8" >> "$arquivo"
fi

if [ $KA -lt $KJ ]
then
grep -q -F '10' "$jogo" || echo -n " 8" >> "$arquivo"
fi

Eu sei que tá faltando conferir a variável $KA cada vez que um número é possivelmente inserido, mas quando tendo colocar a
variável $KA entre os passos, seja com eval ou mesmo $KA é retornado comando não encontrado :|




  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts