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

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

#!/bin/bash

# Список планет.

# Имя кажой планеты ассоциировано с расстоянием от планеты до Солнца (млн. миль).

for planet in "Меркурий 36" "Венера 67" "Земля 93" "Марс 142" "Юпитер 483"

do

set -- $planet # Разбиение переменной "planet" на множество аргументов (позиционных параметров).

# Конструкция "--" предохраняет от неожиданностей, если $planet "пуста" или начинается с символа "-".

# Если каждый из аргументов потребуется сохранить, поскольку на следующем проходе они будут "забиты" новыми значениями,

# То можно поместить их в массив,

# original_params=("$@")

echo "$1 в $2,000,000 миль от Солнца"

#----две табуляции---к параметру $2 добавлены нули

done

# (Спасибо S.C., за разъяснения.)

exit 0

В качестве списка, в цикле for, можно использовать переменную.

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

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

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

Пример: обработка связного списка

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

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


Создание элементов списка:

Из книги XSLT автора Хольцнер Стивен

Создание элементов списка: <fo:list-item> Затем при помощи элемента <fo:list-item> нужно поместить в список метку и тело элемента списка. В каждом элементе списка должен присутствовать один из этих объектов.С элементом <fo:list-item> можно применять следующие свойства:• общие


Создание тел элементов списка:

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

Создание тел элементов списка: <fo:list-item-body> Для включения тела элемента списка служит элемент <fo:list-item-body>. Заметьте, что для форматирования тела элемента списка требуемым вам образом вы можете включить в элемент <fo:list-item-body> объект <fo:block>.С элементом


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

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

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


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

Из книги C++ для начинающих автора Липпман Стенли

Пример 10-16. Цикл while с несколькими условиями #!/bin/bashvar1=unsetprevious=$var1while echo "предыдущее значение = $previous" echo previous=$var1 # запомнить предыдущее значение [ "$var1" != end ] # В операторе "while" присутствуют 4 условия, но только последнее управляет циклом. # *последнее* условие -


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

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

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


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

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

Пример 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 "Итерация


Пример 12-20. Пример форматирования списка файлов в каталоге

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

Пример 12-20. Пример форматирования списка файлов в каталоге #!/bin/bash# За основу сценария взят пример "man column".(printf "PERMISSIONS LINKS OWNER GROUP SIZE DATE TIME PROG-NAME " ; ls -l | sed 1d) | column -t# Команда "sed 1d" удаляет первую строку, выводимую командой ls,#+ (для локали "С" это строка: "total N",#+ где "N" -- общее


Пример 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, не со


Пример 25-11. Эмуляция массива с двумя измерениями

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

Пример 25-11. Эмуляция массива с двумя измерениями #!/bin/bash# Эмуляция двумерного массива.# Второе измерение представлено как последовательность строк.Rows=5Columns=5declare -a alpha # char alpha [Rows] [Columns]; # Необязательное объявление массива.load_alpha (){local rc=0local indexfor i in A B C D E F G H I J K L M N O P


Пример A-8. days-between: Подсчет числа дней между двумя датами

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

Пример A-8. days-between: Подсчет числа дней между двумя датами #!/bin/bash# days-between.sh: Подсчет числа дней между двумя датами.# Порядок использования: ./days-between.sh [M]M/[D]D/YYYY [M]M/[D]D/YYYYARGS=2 # Ожидается два аргумента из командной строки.E_PARAM_ERR=65 # Ошибка в числе ожидаемых


5.11. Пример связанного списка

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

5.11. Пример связанного списка Мы завершали главы 3 и 4 примерами для введения читателя в механизм классов С++. В конце этого раздела мы покажем, как разработать класс, представляющий собой односвязный список. (В главе 6 мы рассмотрим двусвязный список, являющийся частью