Пример 22-3. Наибольшее из двух чисел
Пример 22-3. Наибольшее из двух чисел
#!/bin/bash
# max.sh: Наибольшее из двух целых чисел.
E_PARAM_ERR=-198 # Если функции передано меньше двух параметров.
EQUAL=-199 # Возвращаемое значение, если числа равны.
max2 () # Возвращает наибольшее из двух чисел.
{ # Внимание: сравниваемые числа должны быть меньше 257.
if [ -z "$2" ]
then
return $E_PARAM_ERR
fi
if [ "$1" -eq "$2" ]
then
return $EQUAL
else
if [ "$1" -gt "$2" ]
then
return $1
else
return $2
fi
fi
}
max2 33 34
return_val=$?
if [ "$return_val" -eq $E_PARAM_ERR ]
then
echo "Функции должно быть передано два аргумента."
elif [ "$return_val" -eq $EQUAL ]
then
echo "Числа равны."
else
echo "Наибольшее из двух чисел: $return_val."
fi
exit 0
# Упражнение:
# ---------------
# Сделайте этот сценарий интерактивным,
#+ т.е. заставьте сценарий запрашивать числа для сравнения у пользователя (два числа).
Для случаев, когда функция должна возвращать строку или массив, используйте специальные переменные.
count_lines_in_etc_passwd()
{
[[ -r /etc/passwd ]] && REPLY=$(echo $(wc -l < /etc/passwd))
# Если файл /etc/passwd доступен на чтение, то в переменную REPLY заносится число строк.
# Возвращаются как количество строк, так и код завершения.
}
if count_lines_in_etc_passwd
then
echo "В файле /etc/passwd найдено $REPLY строк."
else
echo "Невозможно подсчитать число строк в файле /etc/passwd."
fi
# Спасибо S.C.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Сеть из двух компьютеров
Сеть из двух компьютеров Очень часто случается, что нужно постоянно или разово быстро переписать большой объем информации с одного компьютера на другой, рядом стоящий. При этом использовать какие-то средства переноса данных нежелательно или просто лень. В этом случае
Установка двух ОС
Установка двух ОС Прежде чем устанавливать две операционные системы, вы должны понять, что каждая операционная система занимает ценное дисковое пространство и могут возникнуть проблемы, связанные с совместимостью файловых систем. Каждая операционная система – это
Сравнение двух документов
Сравнение двух документов В более ранних версиях Microsoft Word (например, в Word 97) каждый документ имел три кнопки управления размером окна, которые дублировали кнопки управления размером окна программы и отличались лишь тем, что их действие распространялось на текущий
8.2.11. Объединение двух хэшей
8.2.11. Объединение двух хэшей Иногда бывает нужно объединить хэши. Метод merge получает два хэша и формирует из них третий, перезаписывая обнаружившиеся дубликаты:dict = {"base"=>"foundation", "pedestal"=>"base"}added = {"base"=>"non-acid", "salt"=>"NaCl"}new_dict = diet.merge(added)# {"base" =>"non-acid", "pedestal" =>"base", "salt"=>"NaCl"}У
Пример 9-23. Генерация случайных чисел
Пример 9-23. Генерация случайных чисел #!/bin/bash# $RANDOM возвращает различные случайные числа при каждом обращении к ней.# Диапазон изменения: 0 - 32767 (16-битовое целое со знаком).MAXCOUNT=10count=1echoecho "$MAXCOUNT случайных чисел:"echo "-----------------"while [ "$count" -le $MAXCOUNT ] # Генерация 10 ($MAXCOUNT) случайных
Пример 22-4. Преобразование чисел в римскую форму записи
Пример 22-4. Преобразование чисел в римскую форму записи #!/bin/bash# Преобразование чисел из арабской формы записи в римскую# Диапазон: 0 - 200# Расширение диапазона представляемых чисел и улучшение сценария# оставляю вам, в качестве упражнения.# Порядок использования: roman
Пример 22-6. Сравнение двух больших целых чисел
Пример 22-6. Сравнение двух больших целых чисел #!/bin/bash# max2.sh: Наибольшее из двух БОЛЬШИХ целых чисел.# Это модификация предыдущего примера "max.sh",# которая позволяет выполнять сравнение больших целых чисел.EQUAL=0 # Если числа равны.MAXRETVAL=255 # Максимально возможное
Пример A-18. Генерация простых чисел, с использованием оператора деления по модулю (остаток от деления)
Пример A-18. Генерация простых чисел, с использованием оператора деления по модулю (остаток от деления) #!/bin/bash# primes.sh: Генерация простых чисел, без использования массивов.# Автор: Stephane Chazelas.# Этот сценарий не использует класический алгоритм "Решето Эратосфена",#+ вместо него
11.3.1. Объединение двух файлов
11.3.1. Объединение двух файлов Предположим, имеется два текстовых файла: один называется names.txt и содержит имена пользователей с указанием улиц, на которых они проживают, а другой называется town.txt и содержит имена пользователей с указанием городов, в которых они живут.$ cat
ОГОРОД КОЗЛОВСКОГО: Три в двух
ОГОРОД КОЗЛОВСКОГО: Три в двух Три в двух - это не странный монстрик, сочетающий в двух корпусах три функции (как, знаете, бывает «три в одном», вроде МФУ), а три разных устройства - в двух «Огородах». На самом-то деле, по замыслу, - это типичное «три в одном», но двух журнальных
ОГОРОД КОЗЛОВСКОГО: Три в двух
ОГОРОД КОЗЛОВСКОГО: Три в двух Итак: что же, кроме лентопротяжки, остается от профессионализма GV-D1000E? Способность работать со специальными видеокассетами, снабженными крохотными микросхемами памяти, куда можно уместить пару титров, идентификационную информацию да
У12.1 Наибольшее целое
У12.1 Наибольшее целое Предположим, компьютер генерирует исключение, когда сложение целых дает переполнение. Используя обработку исключений, напишите приемлемую по эффективности функцию, возвращающую наибольшее положительное целое, представимое на этой