Книга: Искусство программирования на языке сценариев командной оболочки
Пример 12-44. Преобразование метров в мили
Пример 12-44. Преобразование метров в мили
#!/bin/bash
# unit-conversion.sh
convert_units () # Принимает в качестве входных параметров единицы измерения.
{
cf=$(units "$1" "$2" | sed --silent -e '1p' | awk '{print $2}')
# Удаляет все кроме коэффициентов преобразования.
echo "$cf"
}
Unit1=miles
Unit2=meters
cfactor=`convert_units $Unit1 $Unit2`
quantity=3.73
result=$(echo $quantity*$cfactor | bc)
echo "В $quantity милях $result метров."
# Что произойдет, если в функцию передать несовместимые единицы измерения,
#+ например "acres" (акры) and "miles" (мили)?
exit 0
m4
Не команда, а клад, m4 -- это мощный фильтр обработки макроопределений[ 37 ], фактически -- целый язык программирования. Изначально создававшаяся как препроцессор для RatFor, m4 оказалась очень полезной и как самостоятельная утилита. Фактически, m4 сочетает в себе функциональные возможности eval, tr, awk, и дополнительно предоставляет обширные возможности по созданию новых макроопределений.
В апрельском выпуске, за 2002 год, журнала Linux Journal вы найдете замечательную статью, описывающую возможности утилиты m4.
- Пример 12-39. Использование seq для генерации списка аргументов цикла for
- Пример 12-40. Использование getopt для разбора аргументов командной строки
- Пример 12-41. Захват нажатых клавиш
- Пример 12-42. Надежное удаление файла
- Пример 12-43. Генератор имен файлов
- Пример 12-44. Преобразование метров в мили
- Пример 12-45. Пример работы с m4
- ПРЕОБРАЗОВАНИЕ ТИПОВ
- Преобразование кодировок
- Пример установочного скрипта
- Пример из практики
- Преобразование XML в реляционную базу данных
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Примеры получения статистики
- Пример применения метода «пять почему»
- Единое имя файла параметров InterBase
- Пример 12-8. Частота встречаемости отдельных слов
- Преобразование строки в целое: stoi( )
- 1.2.5. Пример программы