Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Stsenarii.doc
Скачиваний:
5
Добавлен:
22.12.2018
Размер:
125.95 Кб
Скачать

Средства ввода-вывода

Задачи ввода–вывода могут быть решены посредством использования специальных команд echo и read.

Команда echo выдаёт на стандартное устройство вывода значения всех своих параметров.

Команда read имя1 имя2 ... имяN считывает со стандартного устройства ввода строку, выделяет из неё отдельные слова (группы символов, отделяемые пробелами) и каждое слово заносит в указанные в качестве параметров соответствующие переменные. При этом если переменных меньше, чем выделенных слов, то в последнюю из них будет занесена оставшаяся часть строки.

В качестве примера приведён сценарий, в котором от пользователя запрашивается строка, после чего она выводится на терминал. Параметр –n запрещает перевод на следующую строку по окончании вывода командой echo, разрешённый по умолчанию.

#!/bin/sh

echo –n Input your name:

read INPUT

echo Hello, $INPUT !

Вычисление арифметических выражений

Операторы для вычисления арифметических выражений представлены в таблице в порядке понижения приоритета. Для изменения порядка вычисления используются скобки.

Оператор

Значение

-

унарный минус

!-

логическое отрицание, двоичная инверсия (дополнение до единицы)

*, /, %

умножение, деление, взятие остатка от деления

+, -

сложение, вычитание

<<, >>

поразрядный сдвиг влево, поразрядный сдвиг вправо

==, !=

проверка на равенство, проверка на неравенство

&

поразрядное И

^

поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ

|

поразрядное ИЛИ

&&

логическое И

||

логическое ИЛИ

=

присваивание значения

+=, -+

присваивание после сложения, присваивание после вычитания

*=, /=, %=

присваивание после умножения, присваивание после деления, присваивание после взятия остатка от деления

<<=, >>=

присваивание после поразрядного сдвига влево, присваивание после поразрядного сдвига вправо

Команда let выражение позволяет вычислять целочисленные арифметические выражения. Выражения состоят из чисел, операторов и переменных интерпретатора (без предшествующего символа $). Выражения должны браться в кавычки, если содержат пробелы либо другие специальные символы. Например:

let 2*7 # выдает значение 14

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

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

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

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

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

let "count=0" "i=i+1" # Присвоить значения переменным i и count

let "num % 2" # Проверка числа на четность

Команда expr выражение является универсальным обработчиком выражений и применяется для вычисления заданного выражения. Операнды выражения обязательно должны отделяться друг от друга пробелами, а метасимволы (например, оператор умножения) должны быть экранированы. Выражения могут быть арифметическими, логическими или строковыми. Например:

expr 3 + 5 # возвратит 8

expr 5 % 3 # возвратит 2

expr 5 \* 3 # возвратит 15

Примеры подстановки арифметических выражений:

A=`expr \(5 + 3 \) / 3` # переменной А присвоить (5+3)/3

y=`expr $y + 1` # Операция инкремента переменной y,

# то же самое, что и let y=y+1

# или y=$(($y+1)).

В арифметических подстановках обратные одиночные кавычки могут быть заменены на двойные круглые скобки – $((...)) и $((...)) или конструкцией, с применением команды let.

z=$(($z+3))

z=$((z+3)) # аналогично предыдущей команде

foo=$(( ((5 + 3*2) – 4) / 2 )) # в результате выполнения этой команды

# переменная foo примет значение 3

Примечание: внутри двойных круглых скобок подстановка переменных выполняется автоматически.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]