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


Программирование на языке сценариев командной оболочки - стр. 173


AWKSCRIPT=' { printf( "%3.7f\n", sqrt($1*$1 + $2*$2) ) } ' # команды и параметры, передаваемые в awk

echo -n "Гипотенуза прямоугольного треугольника, с катетами $1 и $2, = " echo $1 $2 | awk "$AWKSCRIPT"

exit 0

12.9. Прочие команды

Команды, которые нельзя отнести ни к одной из вышеперечисленных категорий

jot, seq

Эти утилиты выводят последовательность целых чисел с шагом, заданным пользователем.

По-умолчанию, выводимые числа отделяются друг от друга символом перевода строки, однако, с помощью ключа -s может быть задан другой разделитель.

bash$ seq 5

1 2 3 4 5

bash$ seq -s : 5

1:2:3:4:5

Обе утилиты, и jot, и seq, очень удобно использовать для генерации списка аргументов в цикле for.

Пример 12-39. Использование seq для генерации списка аргументов цикла for

#!/bin/bash # Утилита "seq"

echo

for a in `seq 80` # или так: for a in $( seq 80 ) # То же самое, что и for a in 1 2 3 4 5 ... 80 (но как экономит время и силы!). # Можно использовать и 'jot' (если эта утилита имеется в системе). do echo -n "$a " done # 1 2 3 4 5 ... 80 # Пример использования вывода команды для генерации # [списка] аргументов цикла "for".

echo; echo

COUNT=80 # Да, 'seq' допускает указание переменных в качестве параметра.

for a in `seq $COUNT` # или так: for a in $( seq $COUNT ) do echo -n "$a " done # 1 2 3 4 5 ... 80

echo; echo

BEGIN=75 END=80

for a in `seq $BEGIN $END` # Если "seq" передаются два аргумента, то первый означает начальное число последовательности, #+ второй -- последнее, do echo -n "$a " done # 75 76 77 78 79 80

echo; echo

BEGIN=45 INTERVAL=5 END=80

for a in `seq $BEGIN $INTERVAL $END` # Если "seq" передется три аргумента, то первый аргумент -- начальное число в последовательности, #+ второй -- шаг последовательности, #+ и третий -- последнее число в последовательности. do echo -n "$a " done # 45 50 55 60 65 70 75 80

echo; echo

exit 0

getopt




Начало  Назад  Вперед



Книжный магазин