И это всё МОЁ

добрый день

столкнулся со странным поведением bash-цикла

понятно, что мне что-то не понятно, вот хотелось бы уточнить, что именно :о)

run.sh

#!/bin/sh
set -e; clear

LST=line.lst

msg(){ echo -e "\n###\n$1, press ENTER to continue...\n###\n"; read; }

msg "msg DEBUG"

while read LINE
do
echo "echo LINE = $LINE"
done < $LST

while read LINE
do
msg "msg() LINE = $LINE"
done < $LST

echo -e "\n### OK ###"

line.lst

line_1
line_2
<blah-blah-blah...to>
line_9

output

###
msg DEBUG, press ENTER to continue... ###!!! тут скрипт ожидает нажатия на ENTER
###

echo LINE = line_0
echo LINE = line_1
echo LINE = line_2
echo LINE = line_3
echo LINE = line_4
echo LINE = line_5
echo LINE = line_6
echo LINE = line_7
echo LINE = line_8
echo LINE = line_9

###
msg() LINE = line_0, press ENTER to continue... ###!!! тут скрипт проскакивает как угорелый
###

###
msg() LINE = line_2, press ENTER to continue... ###!!! аналогично
###

###
msg() LINE = line_4, press ENTER to continue... ###!!! ...
###

###
msg() LINE = line_6, press ENTER to continue... ###!!! ...
###

###
msg() LINE = line_8, press ENTER to continue... ###!!! ...
###

### OK ###

- в цикле не отрабатывается read/ожидание нажатия на ENTER

- отработка цикла (чтение файла) происходит с пропуском четных строк

...

slackware 12.2/14.2








 ,