Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

в той час як

bash може висловити подібну ідею. Скажімо, ми хочемо відобразити п’ять чисел послідовно


порядок від одного до п'яти. а бити скрипт можна побудувати так:


#! / бін / баш


# while-count: відобразити серію чисел count=1

while [[ $count -le 5 ]]; зробити echo $count count=$((count + 1))

зроблений

echo «Готово».

#! / бін / баш


# while-count: відобразити серію чисел count=1

while [[ $count -le 5 ]]; зробити echo $count count=$((count + 1))

зроблений

echo «Готово».


Після виконання цей скрипт відображає таке:



[me@linuxbox ~]$ while-count

1

2

3

4

5

Готово.

[me@linuxbox ~]$ while-count

1

2

3

4

5

Готово.


Синтаксис в той час як команда така:

в той час як Команди; робити Команди; зроблено

Люблю if, в той час як оцінює статус виходу зі списку команд. Поки статус виходу дорівнює нулю, він виконує команди всередині циклу. У сценарії вище змінна вважати створюється і присвоюється початкове значення 1. The в той час як команда оцінює статус виходу [[]] складена команда. Поки [[]] команда повертає статус виходу нульовий, команди в циклі виконуються. В кінці кожного циклу, [[]] команда повторюється. Після п'яти ітерацій циклу значення вважати зросла до 6, ст [[]] Команда більше не повертає статус виходу, рівний нулю, і цикл завершується. Програма продовжується наступним оператором після циклу.

Ми можемо використовувати a поки петля для поліпшення меню читання програма з попередньої глави:


#! / бін / баш


# while-menu: системна інформаційна програма, керована меню

#! / бін / баш


# while-menu: системна інформаційна програма, керована меню


ЗАТРИМКА=3 # Кількість секунд для відображення результатів


в той час як [[ $REPLY != 0 ]]; робити

ясно

кіт <<- _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

ще

echo "Недійсний запис."

спати $DELAY

fi

зроблений

echo «Програму припинено».

ЗАТРИМКА=3 # Кількість секунд для відображення результатів


в той час як [[ $REPLY != 0 ]]; робити

ясно

кіт <<- _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

ще

echo "Недійсний запис."

спати $DELAY

fi

зроблений

echo «Програму припинено».


Увімкнувши меню у цикл while, ми можемо змусити програму повторювати відображення меню після кожного вибору. Цикл триває до тих пір, поки ВІДПОВІДЬ не дорівнює «0», і меню знову відображається, даючи користувачеві можливість зробити інший вибір. В кінці кожної дії а сон Команда виконується, тому програма зупиняється на кілька секунд, щоб побачити результати вибору, перш ніж екран буде очищено і меню знову відобразиться. один раз ВІДПОВІДЬ дорівнює «0», що вказує на вибір «вийти»,


цикл закінчується, і виконання продовжується з наступного рядка зроблений.


Найпопулярніші хмарні обчислення ОС на OnWorks: