LINUX.ORG.RU
ФорумAdmin

Не работает вложенность управляющих конструкций на bash?


0

1

Не работает вложенность управляющих конструкций на bash?
Пытаюсь проделать вот такое:

for BLOCK in ${MASS[@]} do
while [ «$BLOCK» -eq «$index» ] do
if [ $BLOCK -lt 1 -o $BLOCK -gt 40 ]; then
echo Bad 3
exit 1
fi
done
if [ $BLOCK -lt 0 -o $BLOCK -gt 40 ]; then
echo Bad 4
exit 1
done

Не канает и говорит вот что:
./chk: line 19: syntax error near unexpected token `while'
./chk: line 19: `   while [ «$BLOCK» -eq «$index» ] do'

Пробовал заменить вложенный while на if и for, дает такую же ошибку.

Подскажите, в чем может быть проблема?

★★

Последнее исправление: ChAnton (всего исправлений: 1)
Ответ на: комментарий от Deleted

А может быть счетчики вложенных циклов надо сбрасывать, только что прочитал. Сейчас еще и Ваш вариант попробую.

ChAnton ★★
() автор топика
Ответ на: комментарий от anon_666

>>После второго «if» пропустили «fi».

Да я просто не весь код выложил. Скрипт очень большой. Вторая fi имеется))) А за наглядность отдельное спасибо!

ChAnton ★★
() автор топика

Странный код, очевидно недописан.
IMHO, вот так будет нагляднее:

for BLOCK in ${MASS[@]}; do
  ...
  while [ "$BLOCK" -eq "$index" ]; do
    [ $BLOCK -lt 1 -o $BLOCK -gt 40 ] && { echo Bad 3; exit 1;}
    ...
  done
  [ $BLOCK -lt 0 -o $BLOCK -gt 40 ] && { echo Bad 4; exit 1;}
done

anon_666
()
Ответ на: комментарий от Deleted

Разобрался, и Вам спасибо за подсказку, она кстати и пригодилась, заодно еще пару ошибоу у себя нашел. Счетчики итераций в каждом цикле также пришлось сбрасывать, так как их десятки в одном.

С уважением,

ChAnton ★★
() автор топика
Ответ на: комментарий от anon_666

>>Странный код, очевидно недописан.

Конечно не дописан)))

ChAnton ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.