скачать книгу бесплатно
porsh bmv mers
5.2 Подстановка массивов.
Подстановки переменных для массивов и их элементов выполняются
4
$ echo ${a[-2]}
7
Для ссылки на массив служит форма ${…..}
Пример
$ car=(porsh bmv mers)
$ echo ${car[0]}
porsh
$ echo ${car[*]}
porsh bmv mers
5.2 Подстановка массивов.
Подстановки переменных для массивов и их элементов выполняются следующих формах.
${имя[i]} использовать элемент i массива имя
Использовать все элементы массива
${имя[@]}
${#имя[*]}
Пример, создадим простой массив
$ a=(0 1 2 3 4 5 )
$ echo ${a[4]}
4
$ echo ${a[*]}
0 1 2 3 4 5
$ echo ${a[@]}
0 1 2 3 4 5
$ echo ${#a[*]}
6
$ echo ${#a[@]}
6
5.3 Ассоциативные массивы.
Ассоциативные массивы те в которых индексами являются символьные строки. Ассоциативные массивы объявляются командами declare -A, local -A, readonly -A
Присваивание значений элементам aссоциативного массива.
Пример создадим простой ассоциативный массив
$ declare -A avto=([bmv]=10 [porsh]=20 [mers]=30)
Проверяем
$ echo ${avto[*]}
20 30 10
$ echo ${avto[bmv]}
10
$ local -A avto=([bmv])=10 [mers]=30
bash: local: можно использовать только внутри функции.
Глава 6.Специальные строки приглашений.
Значения переменных PS1,PS2,PS3,PS4 обрабатываются в оболочке , принимая во внимание следующие управляющие последовательности символов.
\a Звуковой или визуальный сигнал
\A Текущее время ЧЧ ММ
\d Дата
\D (формат) Дата
\e символ перехода
\h имя хоста
\H полное имя хоста
\j текущее количество заданий
\l базовое имя терминального устройства
\n символ новой строки
\r символ перевода каретки
\s имя оболочки
\t текущее время в 24 часовом формате
\T текущее время в 12 часовом формате
\u имя текущего пользователя
\v текущая версия оболочки Bash
\V текущий выпуск оболочки Bash
\w базовое имя текущего каталога
\! номер строки с данной командой
\# номер данной команды
\$ индефикатор пользователя равен 0 # иначе $
\@ текущее время в 12 часовом формате
\nnn символ представленный восьмиричным значением кода
\\ символ обратной косой черты
\[ начало последовательности непечатаемых символов
\] конец последовательности непечатаемых символов
PS1 задает вид строки приглашения.
PS2 вторичный тип приглашения ввода (> , +).
PS3 третичное приглашение (при операторе select).
PS4 приглашение 4-го уровня,при отладке
Пример
$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
u@\h – имя пользователя@\ имя хоста
w -базовое имя текущего каталога ($HOME сокращается до ~ ).
Пример u@\h:\w\$=max1@hp:~$
$ echo $PS2
>
$ PS3="Select the item number:"
$ echo $PS3
Select the item number:
Глава 7 Арифметические операции.
++ – Автоматическое икрементирование и декрементирование.
+ – Унарный плюс и минус
!~ Логическое отрицание и двоичная инверсия
** Возведение в степень
* / % Умножение, деление, получение остатка от деления
+ – Сложение и вычитание
< < > > Поразрядный сдвиг влево и вправо
< <+ > >= Операции сравнения
== != Операии сравнения: равно,неравно
& Логическая операция И
^ Логическая операция поразрядное исключающее ИЛИ
| Логическая операия поразрядное ИЛИ
&& Логическая операция И (укороченная)