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

на главную

Жанры

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

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

Шрифт:

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

# 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: извлечение подстроки, начиная с заданной позиции, указанной длины

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

Решала

Иванов Дмитрий
10. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Решала

Все не случайно

Юнина Наталья
Любовные романы:
современные любовные романы
7.10
рейтинг книги
Все не случайно

Око василиска

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

Неудержимый. Книга XIV

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

Жребий некроманта 3

Решетов Евгений Валерьевич
3. Жребий некроманта
Фантастика:
боевая фантастика
5.56
рейтинг книги
Жребий некроманта 3

Делегат

Астахов Евгений Евгеньевич
6. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Делегат

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Real-Rpg. Еретик

Жгулёв Пётр Николаевич
2. Real-Rpg
Фантастика:
фэнтези
8.19
рейтинг книги
Real-Rpg. Еретик

Восход. Солнцев. Книга VI

Скабер Артемий
6. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга VI

Действуй, дядя Доктор!

Юнина Наталья
Любовные романы:
короткие любовные романы
6.83
рейтинг книги
Действуй, дядя Доктор!

Авиатор: назад в СССР 12

Дорин Михаил
12. Покоряя небо
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Авиатор: назад в СССР 12

Адепт. Том 1. Обучение

Бубела Олег Николаевич
6. Совсем не герой
Фантастика:
фэнтези
9.27
рейтинг книги
Адепт. Том 1. Обучение

Земная жена на экспорт

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Земная жена на экспорт

Варлорд

Астахов Евгений Евгеньевич
3. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Варлорд