Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы 10-18.docx
Скачиваний:
1
Добавлен:
27.09.2019
Размер:
33.13 Кб
Скачать

Вопрос 10.

Создание пользовательского сценария - просто, как правда. Для этого всего и нужно:

  • создать командную конструкцию, достойную увековечивания;

  • поместить ее в простой текстовый файл;

  • по потребности и желанию снабдить комментариями;

  • тем или иным способом запустить файл на исполнение.

  • "Читает" значение переменной с устройства стандартного ввода -- stdin, в интерактивном режиме это означает клавиатуру. Ключ -a позволяет записывать значения в массивы (см. Пример 25-3).

  • Пример 11-2. Ввод значений переменных с помощью read

  • #!/bin/bash

  • echo -n "дите значение переменной 'var1': "

  • # Ключ -n подавляет вывод символа перевода строки.

  • read var1

  • # Обратите внимание -- перед именем переменной отсутствует символ '$'.

  • echo "var1 = $var1"

  • echo

  • # Одной командой 'read' можно вводить несколько переменных.

  • echo -n "дите значения для переменных 'var2' и 'var3' (через пробел или табуляцию): "

  • read var2 var3

  • echo "var2 = $var2 var3 = $var3"

  • # Если было введено значение только одной переменной, то вторая останется "пустой".

  • exit 0

  • Если команде read не была передано ни одной переменной, то ввод будет осуществлен в переменную $REPLY.

Вопрос 11

Создание пользовательского сценария - просто, как правда. Для этого всего и нужно:

  • создать командную конструкцию, достойную увековечивания;

  • поместить ее в простой текстовый файл;

  • по потребности и желанию снабдить комментариями;

  • тем или иным способом запустить файл на исполнение.

Арифметические выражения

Арифметические выражения используются в следующих случаях:

  • команда арифметического вычисления

  • подстановки арифметических вычислени

  • подстановки для вычисления параметров подстроки

  • встроенная команда "let"

  • циклы в стиле языка программирования C

  • индексация массива

  • выражения для условий

Арифметические выражения - это выражения , которые вычисляются по некоторым правилам, которые описаны ниже. Операторы и правила арифметических выражений в основном унаследованы из языка программирования C/

Команда let производит арифметические операции над переменными. В большинстве случаев, ее можно считать упрощенным вариантом команды expr.

Пример 11-8. Команда let, арифметические операции.

#!/bin/bash

echo

let a=11 # То же, что и 'a=11'

let a=a+5 # Эквивалентно "a = a + 5"

# (Двойные кавычки и дополнительные пробелы делают код более удобочитаемым)

echo "11 + 5 = $a"

let "a <<= 3" # Эквивалентно let "a = a << 3"

echo "\"\$a\" (=16) после сдвига влево на 3 разряда = $a"

let "a /= 4" # Эквивалентно let "a = a / 4"

echo "128 / 4 = $a"

let "a -= 5" # Эквивалентно let "a = a - 5"

echo "32 - 5 = $a"

let "a = a * 10" # Эквивалентно let "a = a * 10"

echo "27 * 10 = $a"

let "a %= 8" # Эквивалентно let "a = a % 8"

echo "270 mod 8 = $a (270 / 8 = 33, остаток = $a)"

echo

exit 0

Вопрос 12

Арифметические выражения используются в следующих случаях:

  • команда арифметического вычисления

  • подстановки арифметических вычислени

  • подстановки для вычисления параметров подстроки

  • встроенная команда "let"

  • циклы в стиле языка программирования C

  • индексация массива

  • выражения для условий

  • ${#string} - Длина строки

  • Извлечение подстроки

  • ${string:position} - с position до конца

  • ${string:position:length} - с position длиной length символов

  • ${string: -length} - последние length символов

  • Удаление части строки

  • ${string#substring} - до первого с начала

  • ${string##substring} - до последнего с начала

  • ${string%substring} - до первого с конца

  • ${string%%substring} - до последнего с конца

  • Замена подстроки

  • ${string/substring/replacement} - первое вхождение

  • ${string//substring/replacement} - все вхождения

  • ${var/#Pattern/Replacement} - Если в переменной var найдено совпадение с Pattern,

  • причем совпадающая подстрока расположена в начале строки (префикс),

  • то оно заменяется на Replacement. Поиск ведется с начала строки

  • ${var/%Pattern/Replacement} - Если в переменной var найдено совпадение с Pattern,

  • причем совпадающая подстрока расположена в конце строки (суффикс),

  • то оно заменяется на Replacement. Поиск ведется с конца строки

  • Пример:

  • a="12345"; echo "${a}"; echo "${a:3}"; echo "${a#12}"; echo "${a/12/21}"