Isso está funcionando para mim e acredito que é o que você está tentando realizar:
#! /bin/bash -
NUM_SUM=0
NUM_LARGE=0
echo "Please enter the numbers (-99 to exit):"
while [[ "$THIS_NUM" -ne '-99' ]]; do
read -a THIS_NUM
if [[ "$THIS_NUM" -ne '-99' ]]; then
THIS_ARRAY+=("$THIS_NUM")
fi
done
NUM_SMALL="${THIS_ARRAY[0]}"
for NUM in "${THIS_ARRAY[@]}"; do
NUM_SUM=$((${NUM_SUM}+${NUM}))
if [[ "$NUM" -gt "$NUM_LARGE" ]]; then
NUM_LARGE="$NUM"
elif [[ "$NUM" -lt "$NUM_SMALL" ]]; then
NUM_SMALL="$NUM"
fi
done
cat <<EOF
Summary: $NUM_SUM
High Num: $NUM_LARGE
Low Num: $NUM_SMALL
EOF
Eu tenho este script ignorando a entrada -99
, que eu estou supondo que você está usando apenas como uma maneira de sair do loop? Com seus números de entrada, recebo a seguinte saída:
Please enter the numbers:
12
13
14
-99
Summary: 39
High Num: 14
Low Num: 12