Program na 5 z Podstaw Informatyki (laboratoria) @ ZUT

Zadanie było mniej więcej takie (pisane z pamięci):
Skrypt (napisany w bashu) ma przyjmować ciągi liczbowe (zrozumiałem, że skrypt będzie przyjmował ciągi aż do wciśnięcia kombinacji CTRL-C). Jeżeli ciąg jest parzysty to co drugiego elementu ma zostać dodana jedynka. Jeżeli ciąg jest nieparzysty to do środkowego elementu ma zostać dodana pierwsza lub ostatnia liczba w zależności która jest większa.
Wynik z ciągiem parzystym ma zostać pokazany na ekranie, a wynik z ciągiem nieparzystym na zostać zapisany do pliku podanego jako pierwszy parametr.
Poniżej znajduje się kod programu.

#!/bin/bash
while [ true ]
do
read -a tab
let x=${#tab[@]}%2
len=${#tab[@]}
if [ $x -eq 0 ]
then
for i in `seq 1 2 $len`
do
tab[$i]=$((tab[$i]+1))
done
echo ${tab[@]}

else
if [ ${tab[0]} -gt ${tab[$(($len -1))]} ]
then
a=${tab[0]}
else
a=${tab[$(($len-1))]}
fi
tab[$(($len/2))]=$((tab[$(($len/2))]+$a))

echo ${tab[@]} > $1
fi
done