Пример 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.
Используя этот прием, функция может "возвращать" даже несколько значений.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Пример передачи дескриптора
Пример передачи дескриптора Теперь мы представим пример передачи дескриптора. Мы напишем программу под названием mycat, которой в качестве аргумента командной строки передается полное имя файла. Эта программа открывает файл и копирует его в стандартный поток вывода. Но
Подготовка данных для передачи
Подготовка данных для передачи На этапе подготовки происходит оцифровка и сжатие данных. Оцифровка аналогового сигнала означает, что колебания воздуха преобразуются в череду нулей и единиц. На первом этапе колебания воздуха – ваш голос – фиксируются мембраной
Линии передачи
Линии передачи Хотя в PSpice имеется специальное устройство под именем T (для линий передачи), применение его ограничено, поскольку эта модель не учитывает потерь в линии. Мы предпочитаем использовать для линии передачи модель, которая учитывает потери и содержит элементы R,
Урок 18. Этот необычный фильтр Liquify
Урок 18. Этот необычный фильтр Liquify Продолжаем наше обучение. Как можно понять из заголовка, проходить мы будем функцию Stroke (Обводка) и фильтр Liquify (Жидкий). Вы уже встречались с этими двумя функциями, особенно со Stroke (Обводка), но в этом уроке они будут рассмотрены
5.3.1. Учебный пример: SMTP, простой протокол передачи почты
5.3.1. Учебный пример: SMTP, простой протокол передачи почты В примере 5.7. иллюстрируется транзакция SMTP (Simple Mail Transfer Protocol — простой протокол передачи почты), который описан в спецификации RFC 2821. В данном примере строки, начинающиеся с С:, отправляются почтовым транспортным
Способы передачи
Способы передачи Существуют два способа передачи потокового видео – последовательный (Progressive Streaming) и в реальном времени (Real-Time Streaming).При передаче последовательным способом качество изображения всегда лучше, поскольку видео воспроизводится с жесткого диска
Проблемы передачи
Проблемы передачи При трансляции потокового видео через Интернет могут возникать проблемы, ухудшающие качество передачи. Среди них можно выделить несколько основных.Перебои в связиПотоковое вещание требует стабильной связи. Поскольку Интернет не может обеспечить
5.3.1. Учебный пример: SMTP, простой протокол передачи почты
5.3.1. Учебный пример: SMTP, простой протокол передачи почты В примере 5.7. иллюстрируется транзакция SMTP (Simple Mail Transfer Protocol — простой протокол передачи почты), который описан в спецификации RFC 2821. В данном примере строки, начинающиеся с C:, отправляются почтовым транспортным
Способ передачи параметров, используемый по умолчанию
Способ передачи параметров, используемый по умолчанию По умолчанию параметр передается в функцию по значению. Попросту говоря, если не определить для аргумента модификатор, то в функцию передаётся копия переменной.// По умолчанию аргументы передаются по значению.public static
1. Пустые значения (Empty-значения)
1. Пустые значения (Empty-значения) Пустое значение – это просто одно из множества возможных значений какого-то вполне определенного типа данных.Перечислим наиболее «естественные», непосредственные пустые значения (т. е. пустые значения, которые мы могли бы выделить
2. Неопределенные значения ( Null-значения)
2. Неопределенные значения (Null-значения) Слово Null используется для обозначения неопределенных значений в базах данных.Чтобы лучше понять, какие значения понимаются под неопределенными, рассмотрим таблицу, являющуюся фрагментом базы данных: Итак, неопределенное
7.2.1. Тип возвращаемого функцией значения
7.2.1. Тип возвращаемого функцией значения Тип возвращаемого функцией значения бывает встроенным, как int или double, составным, как int или double*, или определенным пользователем – перечислением или классом. Можно также использовать специальное ключевое слово void, которое