
- •СОДЕРЖАНИЕ
- •НАЧАЛЬНАЯ ИНФОРМАЦИЯ
- •ОСНОВНЫЕ СВОЙСТВА bash (major features)
- •ВЫВОД НА КОНСОЛЬ: команда echo
- •КОМАНДА echo (примеры использования)
- •СПЕЦИАЛЬНЫЕ СИМВОЛЫ И ЦИТИРОВАНИЕ
- •ВЫВОД НА КОНСОЛЬ: команда printf
- •ЧТЕНИЕ С КОНСОЛИ: команда read
- •ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
- •РАБОТА С ПЕРЕМЕННЫМИ
- •ОСНОВНЫЕ ОПЕРАЦИИ
- •РАСКРЫТИЕ СКОБОК
- •КОНСТРУКЦИИ УПРАВЛЕНИЯ ПОТОКОМ
- •УСЛОВНЫЙ ОПЕРАТОР IF
- •ПРОВЕРКА УСЛОВИЙ
- •УСЛОВНЫЙ ОПЕРАТОР IF ПРИ РАБОТЕ С ФАЙЛАМИ
- •УСЛОВНЫЙ ОПЕРАТОР IF (примеры использования)
- •УСЛОВНЫЙ ОПЕРАТОР IF (примеры использования)
- •ОПЕРАТОР МНОЖЕСТВЕННОГО ВЫБОРА CASE
- •ЦИКЛ FOR
- •КОМАНДА seq
- •ЦИКЛЫ WHILE/UNTIL и SELECT
- •МАССИВЫ в bash
- •РАБОТА С МАССИВАМИ
- •РАЗРАБОТКА bash-СКРИПТА (СЦЕНАРИЯ)
- •ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ

ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
Общийсинтаксис:
<имя_переменной>=<значение> (безпробеловслеваисправаотзнака =) <имя_переменной>=’<значение>’ – еслизначение переменной состоит изнесколькихслов Указаниетипапеременной: declare [опция] <имя_переменной>=<значение> Безобъявленияпеременнойкоманда declare выводитзначения всехпеременныхвтекущемокружении Удалениепеременной: unset <имя_переменной>
|
Опция |
Значение |
|
-a |
Переменная обрабатывается какмассив |
|
-f |
При использовании данной опции без объявления |
|
|
переменной выводит список ранее объявленных функций, |
|
|
включая определение этих функций |
|
-F |
При использовании данной опции без объявления |
|
|
переменной выводит список имен ранее объявленных |
|
|
функций (без самого определения) |
|
-i |
Переменная обрабатывается как целое число |
|
-r |
Создает переменную только для чтения (аналогично команде |
|
|
readonly), которую нельзя переопределить, включая unset |
|
-x |
Позволяет экспортировать переменную за пределы текущего |
|
|
окружения аналогично команде export |
10 |
|
Примеры объявленияпеременных:
$ |
x=10 |
|
$ |
str=ʺString valueʺ |
|
$ |
words=’Multiple words value’ |
|
Пример использования команды declare: |
||
$ |
val1=10 val2=5 |
res=$val1*$val2 ? |
$ res=val1*val2 |
||
$ |
echo $res |
|
val1*val2 |
|
|
$ declare –i val3=10 val4=5 |
||
$ |
declare –i result2 |
|
$ |
result2=val3*val4 |
|
$ |
echo $result2 |
|
50

РАБОТА С ПЕРЕМЕННЫМИ
Объявление: $ y=10
$ B=ʺʺ $ x = 3
$ s=String string $ s=ʺString stringʺ
Обращениекпеременным: $ echo y value is $y
$ echo y value is ${y}
$ |
words=’Many |
spaces |
between words’ |
$ |
echo $words |
|
|
Many spaces between words |
|||
$ echo ʺ$wordsʺ |
between |
words |
|
Many spaces |
Вычислениеарифметического выражения $((<выражение>)): $ x=3 y=4
$ r=$(( $x + $y )) # => 7
$ r=$(( ${x} + ${y} )) # => 7 $ r=$(( x + y )) # => 7
$ r=$( x + y )
Записьрезультатавыполнениякоманды $(<команда>): $ a=`ls`
$ a=$(ls)
То, что записано внутри скобок выполняется средствами ОС, арезультатзаписывается впеременную
$ x=4
$ b=$(( $x + 1 + 5 ))
$ d=$( expr $x + 1 + 5 ) $ echo $b $d
10 10
11

ОСНОВНЫЕ ОПЕРАЦИИ
Арифметические операторыэквивалентныаналогамв C:
Оператор Значение
++Увеличение на 1 (префикс и постфикс)
--Уменьшение на 1 (префикс и постфикс)
+Сложение
-Вычитание
*Умножение
/Деление
%Остаток от деления
**Возведение в степень
<<Побитовый сдвиг влево
>>Побитовый сдвиг вправо
&Побитовое И
| |
Побитовое ИЛИ |
~ |
Побитовое НЕ |
|
|
!Логическое НЕ
^Побитовое исключающее ИЛИ
12
Операторыотношения:
Оператор |
Значение |
< |
Меньше |
> |
Больше |
<= |
Меньше или равно |
>= |
Больше или равно |
== |
Равно |
!= |
Не равно |
&& |
Логическое И |
|| |
Логическое ИЛИ |
Аналогично declare для вычисления арифметического
выражения |
можно |
|
использовать |
конструкцию |
let <имя_переменной>=<выражение>: |
|
|||
$ x=4 |
|
|
|
|
$ let c=$x*2+1+5 |
НО let c= ʺ(2 + 3)*$xʺ |
|||
$ let c=’(2 + 3)*4’ |
||||
$ d=$( expr $x*2 + 1 |
+ 5 ) |
|
||
$ d=$( expr $x * 2 + |
1 + 5 ) |
|
||
$ d=$( expr $x \* 2 |
+ 1 + 5 ) |
|
||
$ d=$( expr $x\*2 + |
1 + 5 ) |
|

РАСКРЫТИЕ СКОБОК
Общаяформамеханизмараскрытия фигурныхскобок: [<преамбула>]{<вариант1>,<вариант2>,…,<вариантN>} [<постскриптум>]
Примеры использования: |
|
||||
ca{r,n,t}s |
=> |
|
cars cans cats |
||
ca{r,n,t,{f,k,v}e}s |
=> cars cans cats cafes cakes caves |
||||
Формированиепоследовательностибуквиличисел (сверсии bash 3.0): |
|||||
{1..8} |
=> |
1 |
2 |
3 |
4 5 6 7 8 |
{a..h} |
=> |
a b |
c d e f g h |
||
Использование сшаблонами: |
|||||
$ ls *.{csh,sh} |
|
=> |
script1.csh test.csh lab1.sh |
13