LINUX.ORG.RU

Syntax error: Bad for loop variable


0

1

Делая скрипт для обновления дисков Debian'а, обнаружил странное явление: следующий код не работает - получаю ошибку, означенную в теме!

#!/bin/sh
StartDisk=1;FinishDisk=8;for (( i=${StartDisk} ; i<=${FinishDisk} ; i++ ));  do echo $i;done

Однако если ту же строчку выполнить в консоли - она работает нормально. Подскажите в чём может быть дело?

$ cat /etc/debian_version 
6.0.1
$ bash --version
GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$

#!/bin/sh

bash --version

Тебе это ни о чем не говорит?

geekless ★★ ()

Для начала используй полные пути, большенство проблем оттуда, и да bash или sh может тоже послужить причиной неработоспособности скрипта.

и особенно если он запускается кроном.

MikeDM ★★★★★ ()
Ответ на: комментарий от redgremlin

Заработало!

Всем большое спасибо, в том числе за дельную критику. Постараюсь быть внимательней.

MichaelCherenkov ()
bash -c 'for i in {1..8}; do echo $i; done'
anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.