Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Выход из цикла

bash предоставляет две встроенные команды, которые можно использовать для управления потоком программы внутри циклов. Команда break немедленно завершает цикл, и управление программой возобновляется со следующего оператора, следующего за циклом. Команда continue заставляет пропустить оставшуюся часть цикла, и управление программой возобновляется со следующей итерации цикла. Здесь мы видим версию программы while-menu, включающую как break, так и continue:


#! / Bin / Баш


# while-menu2: программа системной информации, управляемая меню. DELAY = 3 # Количество секунд для отображения результатов

пока правда; делать

Очистить

кошка << - _EOF_

Пожалуйста выберите:


1. Отображение системной информации

2. Отображение дискового пространства

3. Отображение использования домашнего пространства

0. Выйти


_EOF_

read -p "Ввести выделение [0-3]>"


если [[$ REPLY = ~ ^ [0-3] $]]; тогда если [[$ REPLY == 1]]; тогда

echo "Имя хоста: $ HOSTNAME" время работы

спать $ DELAY

продолжать

fi

если [[$ REPLY == 2]]; затем df -h

спать $ DELAY

продолжать

fi

если [[$ REPLY == 3]]; тогда

если [[$ (id -u) -eq 0]]; тогда

echo "Использование домашнего пространства (все пользователи)" du -sh / home / *

еще

#! / Bin / Баш


# while-menu2: программа системной информации, управляемая меню. DELAY = 3 # Количество секунд для отображения результатов

пока правда; делать

Очистить

кошка << - _EOF_

Пожалуйста выберите:


1. Отображение системной информации

2. Отображение дискового пространства

3. Отображение использования домашнего пространства

0. Выйти


_EOF_

read -p "Ввести выделение [0-3]>"


если [[$ REPLY = ~ ^ [0-3] $]]; тогда если [[$ REPLY == 1]]; тогда

echo "Имя хоста: $ HOSTNAME" время работы

спать $ DELAY

продолжать

fi

если [[$ REPLY == 2]]; затем df -h

спать $ DELAY

продолжать

fi

если [[$ REPLY == 3]]; тогда

если [[$ (id -u) -eq 0]]; тогда

echo "Использование домашнего пространства (все пользователи)" du -sh / home / *

еще


echo "Использование домашнего пространства ($ USER)" du -sh $ HOME

fi

спать $ DELAY

продолжать

fi

если [[$ REPLY == 0]]; затем сломать

fi

еще

echo "Неверная запись." спать $ DELAY

фи сделано

echo «Программа завершена».

echo "Использование домашнего пространства ($ USER)" du -sh $ HOME

fi

спать $ DELAY

продолжать

fi

если [[$ REPLY == 0]]; затем сломать

fi

еще

echo "Неверная запись." спать $ DELAY

фи сделано

echo «Программа завершена».


В этой версии скрипта мы настроили бесконечный цикл (тот, который никогда не завершается сам по себе), используя правда команда для предоставления статуса выхода для в то время как. С правда всегда будет выходить с нулевым статусом выхода, цикл никогда не закончится. Это удивительно обычная техника написания сценариев. Поскольку цикл никогда не завершится сам по себе, программист должен предоставить какой-либо способ выйти из цикла, когда придет время. В этом сценарии перерыв команда используется для выхода из цикла при выборе «0». В Продолжить Команда была включена в конец других вариантов сценария, чтобы обеспечить более эффективное выполнение. Используя продолжать, сценарий пропустит код, который не нужен, когда выделение будет идентифицировано. Например, если выбран и идентифицирован вариант «1», нет причин проверять другие варианты.


 

Лучшие облачные вычисления для ОС в OnWorks: