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

Пример 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.

Оглавление книги


Генерация: 1.403. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз