Учитывая указанный вами формат файла, каждая запись имеет три поля: сначала последнее и сумма, затем:
i=0
while read fistname lastname amount; do
NAMEARRAY[$i]="$firstname $lastname"
SALARYARRAY[$i]=$amount
i = `expr $i + 1`
done < "$FILE"
Оболочка считывает встроенную, автоматически разбивает ввод. Смотрите переменную IFS на странице man для sh (1). Если у вас есть данные после поля количества, и вы хотите их игнорировать, просто создайте другую переменную после суммы; но не используйте его. Он соберет все после 1-го поля в дополнительную переменную.
Вы указали оболочку Bourne, поэтому я использовал довольно устаревшие вещи:
i=`expr $x + 1`
обычно пишется
let $((i++)) # ksh, bash (POSIX, Solaris, Linux)
В современных системах / bin / sh обычно ksh или что-то довольно совместимое. Вы, вероятно, можете использовать let $((i++))