Чтение онлайн

на главную

Жанры

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

Купер Мендель

Шрифт:

– *) Usage;;

*) break;; # первое число

esac # ==> Хорошо бы расширить анализ вводимых символов.

shift

done

if [ $# -gt 0 ]

then

PrintBases "$@"

else # чтение со stdin

while read line

do

PrintBases $line

done

fi

Один

из вариантов вызова bc– - использование вложенного документа, внедряемого в блок с подстановкой команд. Это особенно актуально, когда сценарий должен передать bc значительный по объему список команд и аргументов.

variable=`bc << LIMIT_STRING

options

statements

operations

LIMIT_STRING

`

...или...

variable=$(bc << LIMIT_STRING

options

statements

operations

LIMIT_STRING

)

Пример 12-34. Пример взаимодействия bc со "встроенным документом"

#!/bin/bash

# Комбинирование 'bc' с

# 'вложенным документом'.

var1=`bc << EOF

18.33 * 19.78

EOF

`

echo $var1 # 362.56

# запись $( ... ) тоже работает.

v1=23.53

v2=17.881

v3=83.501

v4=171.63

var2=$(bc << EOF

scale = 4

a = ( $v1 + $v2 )

b = ( $v3 * $v4 )

a * b + 15.35

EOF

)

echo $var2 # 593487.8452

var3=$(bc -l << EOF

scale = 9

s ( 1.7 )

EOF

)

#

Возвращается значение синуса от 1.7 радиана.

# Ключом "-l" вызывается математическая библиотека 'bc'.

echo $var3 # .991664810

# Попробуем функции...

hyp= # Объявление глобальной переменной.

hypotenuse # Расчет гипотенузы прямоугольного треугольника.

{

hyp=$(bc -l << EOF

scale = 9

sqrt ( $1 * $1 + $2 * $2 )

EOF

)

# К сожалению, функции Bash не могут возвращать числа с плавающей запятой.

}

hypotenuse 3.68 7.31

echo "гипотенуза = $hyp" # 8.184039344

exit 0

Пример 12-35. Вычисление числа "пи"

#!/bin/bash

# cannon.sh: Аппроксимация числа "пи".

# Это очень простой вариант реализации метода "Monte Carlo",

#+ математическое моделирование событий реальной жизни,

#+ для эмуляции случайного события используются псевдослучайные числа.

# Допустим, что мы располагаем картой квадратного участка поверхности со стороной квадрата 10000 единиц.

# На этом участке, в центре, находится совершенно круглое озеро,

#+ с диаметром в 10000 единиц.

# Т.е. озеро покрывает почти всю карту, кроме ее углов.

# (Фактически -- это квадрат со вписанным кругом.)

#

# Пусть по этому участку ведется стрельба железными ядрами из древней пушки

# Все ядра падают где-то в пределах данного участка,

#+ т.е. либо в озеро, либо на сушу, по углам участка.

# Поскольку озеро покрывает большую часть участка,

#+ то большинство ядер будет падать в воду.

# Незначительная часть ядер будет падать на твердую почву.

#

# Если произвести достаточно большое число неприцельных выстрелов по данному участку,

Поделиться:
Популярные книги

Барон нарушает правила

Ренгач Евгений
3. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон нарушает правила

Помещица Бедная Лиза

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Помещица Бедная Лиза

Бальмануг. Студентка

Лашина Полина
2. Мир Десяти
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Бальмануг. Студентка

Изменить нельзя простить

Томченко Анна
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Изменить нельзя простить

Газлайтер. Том 3

Володин Григорий
3. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 3

Жандарм 4

Семин Никита
4. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 4

Кодекс Охотника. Книга X

Винокуров Юрий
10. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга X

Отмороженный 6.0

Гарцевич Евгений Александрович
6. Отмороженный
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Отмороженный 6.0

Пипец Котенку!

Майерс Александр
1. РОС: Пипец Котенку!
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Пипец Котенку!

АН (цикл 11 книг)

Тарс Элиан
Аномальный наследник
Фантастика:
фэнтези
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
АН (цикл 11 книг)

Толян и его команда

Иванов Дмитрий
6. Девяностые
Фантастика:
попаданцы
альтернативная история
7.17
рейтинг книги
Толян и его команда

Пятое правило дворянина

Герда Александр
5. Истинный дворянин
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пятое правило дворянина

Игрок, забравшийся на вершину. Том 8

Михалек Дмитрий Владимирович
8. Игрок, забравшийся на вершину
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Игрок, забравшийся на вершину. Том 8

Возвышение Меркурия. Книга 7

Кронос Александр
7. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 7