Execute bash -x myscript
. Isso lhe dará um traço da execução que deve esclarecer os problemas.
Seu principal problema é
for i in $tempRow
A variável $tempRow
contém um nome de arquivo. Supondo que o nome do arquivo não contenha nenhum espaço em branco ou caracteres curinga, $tempRow
se expande para uma lista de uma palavra que é esse nome de arquivo. Portanto, o corpo do loop for executado uma vez, com i
definido para o nome do arquivo.
Parece que você deseja repetir as linhas do arquivo. Use while read
para isso. Ou melhor, while IFS= read -r i; do …
.
Algumas dicas adicionais:
- Sempre coloque expansões variáveis em dobro citações, a menos que você saiba por que não .
- Não use
expr
. Este é o século 21, todos os shells possuem aritmética interna.count=$((count + 1))
etc. - Sua lógica com a classificação em cada execução do loop externo é bizarra, mas não tentei descobrir o que você está tentando calcular.