Сценарий, который не является конечным
225
Gefolge
Я набрал скрипт, чтобы проверить некоторые конфигурации на серверах Linux из списка. В списке слишком много серверов, поэтому я разделил этот список 10 на 10 с помощью цикла ниже:
... ... for ((i=0; i <= $serverCounter; i+=15)) do if [ $i -ge $serverCounter ] then exit else echo $i Kontrol $list & ((first+=15)) ((last+=15)) fi done ... ...
Но в этой ситуации я не могу выйти из этого цикла. Вы можете видеть, что я добавил условие if для выхода, но оно не работает (я не знаю почему).
Как я могу выйти из этого цикла без "&", что в EOL (строка функции Kontrol)
Ваш тест `$ i -ge $ serverCounter` избыточен с тестом в цикле for (только в случае, когда` $ i -eq $ serverCounter`). Как написано, ваш код будет по-прежнему запускать N параллельных экземпляров `Kontrol`, где N равно` serverCounter / 15`, поэтому ваша проблема может заключаться в том, что все эти экземпляры в конечном итоге перегрузят вашу систему, и у вас не останется достаточно CPU для продолжения цикла. Возможно, вам придется написать что-то более сложное, чтобы никогда не иметь больше K экземпляров Kontrol, запущенных одновременно.
xenoid 5 лет назад
5
Ваш цикл будет выполняться конечное количество раз, как он есть. Я никогда не буду больше, чем serverCounter, потому что он будет существовать, если он равен или больше, чем serverCounter, как есть.
Ramhound 5 лет назад
1
на самом деле нет проблем с запуском и отделкой. Я не могу увидеть процесс в ps -ef, поэтому скрипт может завершиться, но я не могу попасть в экран bash после последнего контроля. просто курсор мигает. Проблема в перенаправлении "&", я так думаю.
Gefolge 5 лет назад
0
да @ Ramhound Я знаю это, но я уже добавил эту строку после этой проблемы. Так что да, я не могу ввести истину, если утверждение, но я не мог выйти из цикла раньше, если условие в любом случае.
Gefolge 5 лет назад
0
@Gefolge - Ваше условие выхода оценивается только один раз за итерацию цикла, если только у вас нет дополнительного условия, которое прерывает или продолжает цикл.
Ramhound 5 лет назад
0
в первом сценарии не было условия if. Я добавил это, чтобы избежать бесконечного цикла.
Gefolge 5 лет назад
0
0 ответов на вопрос
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Как я могу "инвертировать" структуру каталогов?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux