Чтение онлайн

на главную

Жанры

Искусство программирования на языке сценариев командной оболочки

Купер Мендель

Шрифт:

# Этот сценария является точным эквивалентом

# cp * $1

# если в именах файлов не содержатся пробельные символы.

exit 0

expr

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

expr 3 + 5

возвратит 8

expr 5 % 3

возвратит 2

expr 5 \* 3

возвратит 15

В

арифметических выражениях, оператор умножения обязательно должен экранироваться обратным слэшем.

y=`expr $y + 1`

Операция инкремента переменной, то же самое, что и let y=y+1, или y=$(($y+1)). Пример подстановки арифметических выражений.

z=`expr substr $string $position $length`

Извлекает подстроку длиной $length символов, начиная с позиции $position.

Пример 12-6. Пример работы с expr

#!/bin/bash

# Демонстрация некоторых приемов работы с командой 'expr'

# =======================================

echo

# Арифметические операции

# -------------- --------

echo "Арифметические операции"

echo

a=`expr 5 + 3`

echo "5 + 3 = $a"

a=`expr $a + 1`

echo

echo "a + 1 = $a"

echo "(инкремент переменной)"

a=`expr 5 % 3`

# остаток от деления (деление по модулю)

echo

echo "5 mod 3 = $a"

echo

echo

# Логические операции

# ---------- --------

# Возвращает 1 если выражение истинноо, 0 -- если ложно,

#+ в противоположность соглашениям, принятым в Bash.

echo "Логические операции"

echo

x=24

y=25

b=`expr $x = $y` # Сравнение.

echo "b = $b" # 0 ( $x -ne $y )

echo

a=3

b=`expr $a \> 10`

echo 'b=`expr $a \> 10`,

поэтому...'

echo "Если a > 10, то b = 0 (ложь)"

echo "b = $b" # 0 ( 3 !
– gt 10 )

echo

b=`expr $a \< 10`

echo "Если a < 10, то b = 1 (истина)"

echo "b = $b" # 1 ( 3 -lt 10 )

echo

# Обратите внимание на необходимость экранирования операторов.

b=`expr $a \<= 3`

echo "Если a <= 3, то b = 1 (истина)"

echo "b = $b" # 1 ( 3 -le 3 )

# Существует еще оператор "\>=" (больше или равно).

echo

echo

# Операции сравнения

# -------- ---------

echo "Операции сравнения"

echo

a=zipper

echo "a is $a"

if [ `expr $a = snap` ]

then

echo "a -- это не zipper"

fi

echo

echo

# Операции со строками

# -------- -- --------

echo "Операции со строками"

echo

a=1234zipper43231

echo "Строка над которой производятся операции: \"$a\"."

# length: длина строки

b=`expr length $a`

echo "длина строки \"$a\" равна $b."

# index: позиция первого символа подстроки в строке

b=`expr index $a 23`

echo "Позиция первого символа \"2\" в строке \"$a\" : \"$b\"."

# substr: извлечение подстроки, начиная с заданной позиции, указанной длины

Поделиться:
Популярные книги

Черный Маг Императора 13

Герда Александр
13. Черный маг императора
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 13

Последняя Арена 4

Греков Сергей
4. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 4

Маяк надежды

Кас Маркус
5. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Маяк надежды

Великий перелом

Ланцов Михаил Алексеевич
2. Фрунзе
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Великий перелом

Сопротивляйся мне

Вечная Ольга
3. Порочная власть
Любовные романы:
современные любовные романы
эро литература
6.00
рейтинг книги
Сопротивляйся мне

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Мастер Разума V

Кронос Александр
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Мастер Разума V

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Падение Твердыни

Распопов Дмитрий Викторович
6. Венецианский купец
Фантастика:
попаданцы
альтернативная история
5.33
рейтинг книги
Падение Твердыни

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Ох уж этот Мин Джин Хо 2

Кронос Александр
2. Мин Джин Хо
Фантастика:
попаданцы
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 2

Энфис 6

Кронос Александр
6. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 6