Пример 10-16. Цикл while с несколькими условиями

Пример 10-16. Цикл while с несколькими условиями

#!/bin/bash

var1=unset

previous=$var1

while echo "предыдущее значение = $previous"

echo

previous=$var1 # запомнить предыдущее значение

[ "$var1" != end ]

# В операторе "while" присутствуют 4 условия, но только последнее управляет циклом.

# *последнее* условие - единственное, которое вычисляется.

do

echo "Введите значение переменной #1 (end - выход) "

read var1

echo "текущее значение = $var1"

done

# попробуйте самостоятельно разобраться в сценарии works.

exit 0

Как и в случае с for, цикл while может быть записан в C-подобной нотации, с использованием двойных круглых скобок (см. так же Пример 9-28).

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Операции с несколькими рисунками

Из книги Excel. Мультимедийный курс автора Мединов Олег

Операции с несколькими рисунками В программе Excel предусмотрена возможность работы с несколькими рисунками. При этом вы можете производить операции с этими рисунками (применять стили, эффекты, перемещать) как по отдельности, так и вместе. Кроме того, вы можете как


2.2. Одновременная работа с несколькими документами

Из книги Word 2007.Популярный самоучитель автора Краинский И

2.2. Одновременная работа с несколькими документами Microsoft Word позволяет работать с несколькими документами одновременно. При этом каждый новый документ открывается в отдельном окне, а пользователь, работая в полноэкранном режиме, видит только последний открытый документ.


Работа с несколькими массивами

Из книги Справочник по PHP автора

Работа с несколькими массивами array_diffОпределение исключительного пересечения массивов.Синтаксис:array array_diff(array arr1, array arr2 [, array ...])Данная функция возвращает массив, который содержит значения, имеющиеся только в массиве arr1 ( и не имеющиеся в любых других). При этом индексы


Создание форм с несколькими вкладками

Из книги VBA для чайников автора Каммингс Стив

Создание форм с несколькими вкладками Если вам необходимо работать с таким количеством элементов управления, что они просто не помешаются в одной форме, использование второй формы оказывается не самым лучшим решением проблемы. Вместо этого вы можете просто


Пример 10-2. Цикл for с двумя параметрами в каждом из элементов списка

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Пример 10-2. Цикл for с двумя параметрами в каждом из элементов списка #!/bin/bash# Список планет.# Имя кажой планеты ассоциировано с расстоянием от планеты до Солнца (млн. миль).for planet in "Меркурий 36" "Венера 67" "Земля 93" "Марс 142" "Юпитер 483"do set -- $planet # Разбиение переменной "planet" на


Пример 10-14. Простой цикл while

Из книги Инфобизнес за один день автора Ушанов Азамат

Пример 10-14. Простой цикл while #!/bin/bashvar0=0LIMIT=10while [ "$var0" -lt "$LIMIT" ]do echo -n "$var0 " # -n подавляет перевод строки. var0=`expr $var0 + 1` # допускается var0=$(($var0+1)).doneechoexit


Пример 10-18. Цикл until

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Пример 10-18. Цикл until #!/bin/bashuntil [ "$var1" = end ] # Проверка условия производится в начале итерации.do echo "Введите значение переменной #1 " echo "(end - выход)" read var1 echo "значение переменной #1 = $var1"done exit


Пример 10-19. Вложенный цикл

Из книги Конец холивара. Pascal vs C автора Кривцов М. А.

Пример 10-19. Вложенный цикл #!/bin/bash# Вложенные циклы "for".outer=1 # Счетчик внешнего цикла.# Начало внешнего цикла.for a in 1 2 3 4 5do echo "Итерация #$outer внешнего цикла." echo "---------------------" inner=1 # Сброс счетчика вложенного цикла. # Начало вложенного цикла. for b in 1 2 3 4 5 do echo "Итерация


Пример 16-4. Перенаправление в цикл while

Из книги автора

Пример 16-4. Перенаправление в цикл while #!/bin/bashif [ -z "$1" ]then Filename=names.data # По-умолчанию, если имя файла не задано.else Filename=$1fi# Конструкцию проверки выше, можно заменить следующей строкой (подстановка параметров):#+ Filename=${1:-names.data}count=0echowhile [ "$name" != Smith ] # Почему переменная $name взята


Пример 16-6. Перенаправление в цикл until

Из книги автора

Пример 16-6. Перенаправление в цикл until #!/bin/bash# То же самое, что и в предыдущем примере, только для цикла "until".if [ -z "$1" ]then Filename=names.data # По-умолчанию, если файл не задан.else Filename=$1fi# while [ "$name" != Smith ]until [ "$name" = Smith ] # Проверка != изменена на =.do read name # Чтение из $Filename, не со


3. Создание странички с условиями партнерки

Из книги автора

3. Создание странички с условиями партнерки Создайте страничку с условиями партнерки. Фактически это отдельный мини-сайт, который рекламирует вашу партнерскую программу. На этой странице объясните принцип ее работы: какой товар партнер будет продвигать и какой процент


12.1.10. Сравнение с несколькими символами

Из книги автора

12.1.10. Сравнение с несколькими символами Для выполнения сравнения с несколькими символами применяется формат [character*n]. Ниже приводится содержимое файла, описывающего жесткие диски системы. В файле содержатся диски, которые зарегистрированы или распознаны системой.


2.2.1. Цикл типа “пока” (цикл с предусловием)

Из книги автора

2.2.1. Цикл типа “пока” (цикл с предусловием) Пример 1.4: Нахождение наибольшего общего делителя двух целых положительных чисел с помощью известного алгоритма Евклида.Пока X ? Y делать если X> Y то X:=X-Y иначе Y:=Y-X; Писать (‘НОД=’, X);WHILE X <> Y DO IF X> Y THEN X:=X-Y ELSE Y:=Y-X; WRITE


2.2.2. Цикл типа “до” (цикл с постусловием)

Из книги автора

2.2.2. Цикл типа “до” (цикл с постусловием) Этот цикл выполняется не менее одного разаПример 1.5: Решение предыдущей задачи. Цикл с постусловиемПовторять если X> Y то X:=X-Y иначе Y:=Y-X до X=Y;Писать (‘НОД=’, X);REPEAT IF X> Y THEN X:=X-Y ELSE Y:=Y-X UNTIL X=Y;WRITE (‘НОД=’, X);REPEAT –


2.2.1. Цикл типа “пока” (цикл с предусловием)

Из книги автора

2.2.1. Цикл типа “пока” (цикл с предусловием) Пример 2.4: Программа находит наибольший общий делитель двух целых чисел.#include <assert. h>#include <stdio. h>int main (){int x, y;printf (“Введите два целых числа через пробел ”);int r = scanf (”%d%d”, &x, &y);assert (r == 2);while (x!= y) if (x> y) x = x – y; else y =