#41
monoreals
Отправлено 23 июля 2015 - 18:38
monoreals
-
-
Members
-
2 141 сообщений
Это скрипт в линуксовой оболочке bash.
Он основан на Cи.
Запустил Роутер в режиме vpn-сервера(А многие роутеры работают на линуксе, и там используется оболочка bash)
По идее первая строка в скрипте - это бесконечный цикл: https://ru.wikipedia...есконечный_цикл
И он прерывается только командой kill или сочетанием клавиш: Ctrl+C.
#42
Комиссар
Отправлено 23 июля 2015 - 19:46
Комиссар
-
-
Members
-
4 840 сообщений
-
Луховицы
-
Opel Frontera A Sport C20NE 2,0i 1995 г.р.
Это скрипт в линуксовой оболочке bash.
Он основан на Cи.
Запустил Роутер в режиме vpn-сервера(А многие роутеры работают на линуксе, и там используется оболочка bash)
По идее первая строка в скрипте - это бесконечный цикл: https://ru.wikipedia...есконечный_цикл
И он прерывается только командой kill или сочетанием клавиш: Ctrl+C.
Вадик, ты меня извини, но какой, в дупу, это БЦ? БЦ или кольцо само себя по окончании алгоритма отсылает в начало цикла! Я тебе о чём в посте 40 писал? У ТЕБЯ ЦИКЛ, РАЗОРВАННЫЙ УСЛОВИЕМ, ПО ВЫПОЛНЕНИИ КОТОРОГО ПРОЦЕСС ОСТАНАВЛИВАЕТСЯ! Ща графически изобразю!
#43
monoreals
Отправлено 23 июля 2015 - 20:04
monoreals
-
-
Members
-
2 141 сообщений
апхххаха)) "п....ц котенку")) весело)))
Ну смотри. Все условия выполняются внутри этого бесконечного цикла, и никак он не заканчивается(кроме как kill или Ctrl+C). Я ж ссылку давал)
Алгоритм бесконечного цикла:
while true
do
# что-нибудь делаем
done
При разрыве связи клиент по идее переподключается сам, и естественно маршруты связанные с вирт.интерфейсом слетают, приходиться их поднимать заново.
Отсюда и родил данный скрипт.
Специально разрывал связь с клиентом, маршруты честно переподнимались.
Но вот иногда они не поднимаются, и спасает только перезапуск роутера(а это не есть гуд.)
#44
Комиссар
Отправлено 23 июля 2015 - 21:13
Комиссар
-
-
Members
-
4 840 сообщений
-
Луховицы
-
Opel Frontera A Sport C20NE 2,0i 1995 г.р.
апхххаха)) "п....ц котенку")) весело)))
Ну смотри. Все условия выполняются внутри этого бесконечного цикла, и никак он не заканчивается(кроме как kill или Ctrl+C). Я ж ссылку давал)
Алгоритм бесконечного цикла:
while true
do
# что-нибудь делаем
done
При разрыве связи клиент по идее переподключается сам, и естественно маршруты связанные с вирт.интерфейсом слетают, приходиться их поднимать заново.
Отсюда и родил данный скрипт.
Специально разрывал связь с клиентом, маршруты честно переподнимались.
Но вот иногда они не поднимаются, и спасает только перезапуск роутера(а это не есть гуд.)
Это - БЦ:
while true
do
# что-нибудь делаем
done
Это - необходимое и достаточное условие прерывания БЦ:
else
echo ""
fi
sleep 10
done
В этом условии, по его завершении, отсутствует отсылка на БЦ. В Basic`е это выглядело-бы примерно так:
else
echo ""
fi
sleep 10
goto while true или do
То есть через 10 сек. ожидания запускается БЦ или условие.
#45
monoreals
Отправлено 23 июля 2015 - 22:34
monoreals
-
-
Members
-
2 141 сообщений
выходит операнд fi лишний?
попробую без него.
нет. операнд fi есть составная часть блока if then fi.
без него не будет работать.
выходит операнд fi лишний?
попробую без него.
нет. операнд fi есть составная часть блока if then fi.
без него не будет работать.
fi - обозначает лишь конец блока условия, но не выход из цикла.
Мне кажется, что проблемма все-таки в самом соединении vpn. В его натройках. MTU, MRU и т.д.
#46
Комиссар
Отправлено 24 июля 2015 - 07:10
Комиссар
-
-
Members
-
4 840 сообщений
-
Луховицы
-
Opel Frontera A Sport C20NE 2,0i 1995 г.р.
выходит операнд fi лишний?
попробую без него.
нет. операнд fi есть составная часть блока if then fi.
без него не будет работать.
fi - обозначает лишь конец блока условия, но не выход из цикла.
Мне кажется, что проблемма все-таки в самом соединении vpn. В его натройках. MTU, MRU и т.д.
Влад, извини, ты вообще на программера учился? Я тебе ещё раз повторю: при выполнении дополнительного условия алгоритм прекращает работу после 10-ти секундного ожидания, т.к. после этого НЕТ ОТСЫЛКИ НА БЦ! Я тебе картин зачем рисовал? Ты над "котёнком" поржал, а на главное внимания не обратил, хотя я выделил это и кеглем, и цветом! Тебе надо замыкать исполнение доп.условия на БЦ!
#47
eraval
Отправлено 24 июля 2015 - 08:20
eraval
-
-
Members
-
998 сообщений
Вы уже три страницы спорите, а поправить и попробовать, никак ? Или каждый программер уверен в правильности своего блока, а ошибку выдает блок партнера ? Сделайте уже что-нибудь.
#48
monoreals
Отправлено 24 июля 2015 - 08:38
monoreals
-
-
Members
-
2 141 сообщений
Попробовал поправить. Выдает ошибку сразу. fi -это обязательный параметр блока if then. Он никак не влияет на выход из цикла. Он из другой оперы!!!
#49
Комиссар
Отправлено 24 июля 2015 - 08:44
Комиссар
-
-
Members
-
4 840 сообщений
-
Луховицы
-
Opel Frontera A Sport C20NE 2,0i 1995 г.р.
Вы уже три страницы спорите, а поправить и попробовать, никак ? Или каждый программер уверен в правильности своего блока, а ошибку выдает блок партнера ? Сделайте уже что-нибудь.
Я-бы с удовольствием поправил, но с линуксоидами лет 10 уже не работал, про bash - вообще вчера узнал 
Попробовал поправить. Выдает ошибку сразу. fi -это обязательный параметр блока if then. Он никак не влияет на выход из цикла. Он из другой оперы!!!
Влад! При чём тут операнд "fi"? Ещё раз: после "sleep 10" у тебя идёт операнд "done" без отсылки в начало БЦ. В 44-м посте я тебе привёл мой взгляд на проблему.
#50
monoreals
Отправлено 24 июля 2015 - 08:48
monoreals
-
-
Members
-
2 141 сообщений
черным по белому написано везде..уухх..
while true
do
# что-нибудь делаем
done
Это и есть бесконечный цикл.. вместе с done.
true задает бесконечное выполнение. Без всяких отсылок.
done лишь обозначает границы цикла.
#51
eraval
Отправлено 24 июля 2015 - 08:59
eraval
-
-
Members
-
998 сообщений
Вам бы встретиться, взять пивка, справочники и написать новую программу.
#52
monoreals
Отправлено 24 июля 2015 - 09:02
monoreals
-
-
Members
-
2 141 сообщений
Вам бы встретиться, взять пивка, справочники и написать новую программу.
Это не программа))) это простейший скрипт) Но вот зараза, стабильно не работает.
#53
Комиссар
Отправлено 24 июля 2015 - 09:06
Комиссар
-
-
Members
-
4 840 сообщений
-
Луховицы
-
Opel Frontera A Sport C20NE 2,0i 1995 г.р.
Это не программа))) это простейший скрипт) Но вот зараза, стабильно не работает.
Владик, солнце, ну склади ты мой шедевр жЫвопИси, правую половину, где букав много, с постом № 44! Есть такое слово "АЛГОРИТМ"! Разорван у табе БЦ по условию!!!
#54
monoreals
Отправлено 24 июля 2015 - 09:15
monoreals
-
-
Members
-
2 141 сообщений
#55
eraval
Отправлено 24 июля 2015 - 09:15
eraval
-
-
Members
-
998 сообщений
Это не программа))) это простейший скрипт) Но вот зараза, стабильно не работает.
Поправьте скрипт и напишите программу
.
#56
Комиссар
Отправлено 24 июля 2015 - 09:37
Комиссар
-
-
Members
-
4 840 сообщений
-
Луховицы
-
Opel Frontera A Sport C20NE 2,0i 1995 г.р.
#57
monoreals
Отправлено 24 июля 2015 - 09:44
monoreals
-
-
Members
-
2 141 сообщений
Нет. Цикл бесконечен. Он не может прерваться выполнением или невыполнением условия.
#58
Комиссар
Отправлено 24 июля 2015 - 10:13
Комиссар
-
-
Members
-
4 840 сообщений
-
Луховицы
-
Opel Frontera A Sport C20NE 2,0i 1995 г.р.
Нет. Цикл бесконечен. Он не может прерваться выполнением или невыполнением условия.
Абзац! Нарисуй мне, пожалуйста, блок-схему своего "бесконечного" цикла, "непрерываемую" условием! У тебя в скрипте нарушен синтаксис. У тебя в скрипте НЕТ бесконечного цикла! От того, что ты используешь операнды БЦ, грубо нарушая синтаксис, не будет ни цикла, ни бесконечного цикла.
#59
monoreals
Отправлено 24 июля 2015 - 10:19
monoreals
-
-
Members
-
2 141 сообщений
https://ru.wikipedia...есконечный_цикл
Тут черным по белому написано как в оболочке bash выглядит бесконечный цикл
#60
Комиссар
Отправлено 24 июля 2015 - 10:45
Комиссар
-
-
Members
-
4 840 сообщений
-
Луховицы
-
Opel Frontera A Sport C20NE 2,0i 1995 г.р.
Влад! Нарисуй мне блок-схему! Я умею читать русским по белому! Я специально спросил, ты на программера учился? Судя по всему - нет! Без обид, но первый год в ВУЗах программистам преподают алгоритмизацию, на которой заставляют рисовать схематично процесс на гумаге, что-бы иметь представление, КАК это будет работать. В твоей ссылке приведен НЕКОРРЕКТНЫЙ пример, ибо он НЕПОЛНОЦЕНЕН ввиду того, что нет описания процесса. Бесконечный цикл ЛИНЕЕН!
Цитата: "Любая программа может быть написана при помощи:
- бесконечных циклов;
- команд выхода из цикла;
- операторов ветвления (if-then);
- последовательностью команд, исполняемых одна после другой;" - из твоей статьи в "Вики".
В своём БЦ ты пытаешься использовать оператор ветвления, разрывающий цикл. Выполнение действий в операторе ветвления приводит к завершению скрипта.