Книга: Искусство программирования на языке сценариев командной оболочки
Пример 33-10. Необычный способ передачи возвращаемого значения
Пример 33-10. Необычный способ передачи возвращаемого значения
#!/bin/bash
# multiplication.sh
multiply () # Функции выполняет перемножение всех переданых аргументов.
{
local product=1
until [ -z "$1" ] # Пока не дошли до последнего аргумента...
do
let "product *= $1"
shift
done
echo $product # Значение не будет выведено на экран,
} #+ поскольку оно будет записано в переменную.
mult1=15383; mult2=25211
val1=`multiply $mult1 $mult2`
echo "$mult1 X $mult2 = $val1"
# 387820813
mult1=25; mult2=5; mult3=20
val2=`multiply $mult1 $mult2 $mult3`
echo "$mult1 X $mult2 X $mult3 = $val2"
# 2500
mult1=188; mult2=37; mult3=25; mult4=47
val3=`multiply $mult1 $mult2 $mult3 $mult4`
echo "$mult1 X $mult2 X $mult3 X mult4 = $val3"
# 8173300
exit 0
Такой прием срабатывает и для строковых значений. Таким образом, функция может "возвращать" и нечисловой результат.
capitalize_ichar () # Первый символ всех строковых аргументов
{ #+ переводится в верхний регистр.
string0="$@" # Принять все аргументы.
firstchar=${string0:0:1} # Первый символ.
string1=${string0:1} # Остаток строки.
FirstChar=`echo "$firstchar" | tr a-z A-Z`
# Преобразовать в верхний регистр.
echo "$FirstChar$string1" # Выдать на stdout.
}
newstring=`capitalize_ichar "each sentence should start with a capital letter."`
echo "$newstring" # Each sentence should start with a capital letter.
Используя этот прием, функция может "возвращать" даже несколько значений.
- Пример установочного скрипта
- Пример из практики
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Выражения в значениях по умолчанию для доменов
- Значения переменных по умолчанию
- Примеры получения статистики
- Пример применения метода «пять почему»
- Пример 12-8. Частота встречаемости отдельных слов
- 1.2.5. Пример программы
- 1.2. Понятие информации. Общая характеристика процессов сбора, передачи, обработки и накопления информации
- Пример 17-10. Блочный комментарий
- Примеры