- •СОДЕРЖАНИЕ
- •НАЧАЛЬНАЯ ИНФОРМАЦИЯ
- •ОСНОВНЫЕ СВОЙСТВА bash (major features)
- •ВЫВОД НА КОНСОЛЬ: команда echo
- •КОМАНДА echo (примеры использования)
- •СПЕЦИАЛЬНЫЕ СИМВОЛЫ И ЦИТИРОВАНИЕ
- •ВЫВОД НА КОНСОЛЬ: команда printf
- •ЧТЕНИЕ С КОНСОЛИ: команда read
- •РАБОТА С ПЕРЕМЕННЫМИ
- •ОСНОВНЫЕ ОПЕРАЦИИ
- •РАСКРЫТИЕ СКОБОК
- •ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
- •КОНСТРУКЦИИ УПРАВЛЕНИЯ ПОТОКОМ
- •УСЛОВНЫЙ ОПЕРАТОР IF
- •ПРОВЕРКА УСЛОВИЙ
- •УСЛОВНЫЙ ОПЕРАТОР IF ПРИ РАБОТЕ С ФАЙЛАМИ
- •УСЛОВНЫЙ ОПЕРАТОР IF (примеры использования)
- •УСЛОВНЫЙ ОПЕРАТОР IF (примеры использования)
- •ОПЕРАТОР МНОЖЕСТВЕННОГО ВЫБОРА CASE
- •ЦИКЛ FOR
- •КОМАНДА seq
- •ЦИКЛЫ WHILE/UNTIL и SELECT
- •МАССИВЫ в bash
- •РАБОТА С МАССИВАМИ
- •РАЗРАБОТКА bash-СКРИПТА (СЦЕНАРИЯ)
- •ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ
КОМАНДА seq
Общийсинтаксис:
seq [опции] <последнее_значение>
seq [опции] <первое_значение> <последнее_значение>
seq [опции] <первое_значение> <шаг> <последнее_значение>
Опция |
Назначение |
|
|
||
-f <формат> |
Использовать <формат> команды printf для чисел с плавающей точкой |
||||
-s <разделитель> Использовать <разделитель> для разделения чисел в |
|||||
|
|
последовательности (по умолчанию \n) |
|
||
-w |
Выравнивать ширину выводимых чисел с заполнением нулями |
||||
Примеры использования: |
|
|
|||
$ seq –s ʺ ʺ 10 |
10 |
|
|
||
1 |
2 3 4 5 6 7 8 9 |
|
|
||
$ seq –s ʺ:ʺ 10 |
|
|
|
||
1:2:3:4:5:6:7:8:9:10 |
|
|
|||
$ seq –s ʺ ʺ -w 10 |
|
|
|
||
01:02:03:04:05:06:07:08:09:10 |
|
||||
$ seq –f ʺ%.1fʺ –s ʺ ʺ 0 0.1 1 |
1.0 |
||||
0.0 0.1 0.2 0.3 0.4 0.5 |
0.6 0.7 0.8 0.9 |
||||
22
Применение вцикле for: for i in $(seq 20) do
echo ʺValue is $iʺ done
for i in $(seq 1 2 20) do
echo ʺValue is $iʺ done
ЦИКЛЫ WHILE/UNTIL и SELECT
Общий синтаксис while/until: |
|
while <условие> |
until <условие> |
do |
do |
<оператор(ы)> |
<оператор(ы)> |
done |
done |
Примеры использования: n=1
while [ $n –le 5 ] do
echo ʺValue is $nʺ n=$(( n+1 ))
done
n=1
until [ $n –ne 6 ] do
echo ʺValue is $nʺ n=$(( n+1 ))
done
23
Общий синтаксис select (Korn shell и bash): select <переменная>
[in
<список>
]
do
<оператор(ы)>
done
Пример использования конструкции select: a=10 b=5
echo ʺWhat should we do with variables a and b?ʺ select choice in Add Sub Mult Div Exit
do
case $choice in
Add ) echo ʺa+b=$(($a+$b))ʺ ;; Sub ) echo ʺa-b=$(($a-$b))ʺ ;; Mult ) echo ʺa*b=$(($a*$b))ʺ ;; Div ) echo ʺa/b=$(($a/$b))ʺ ;; Exit ) break
esac done
МАССИВЫ в bash
Формы создания массива:
1)arr=(One Two Three Four Five Six Seven Eight Nine Ten Eleven)
2)arr[0]=One
arr[1]=Two
…
arr[10]=Eleven
3)arr=([2]=Three [1]=Two [0]=One … [10]=Eleven [9]=Ten)
4)arr=(One Two [5]=Three Four Five Six Seven Eight Nine Ten Eleven)
Элемент Four имеет индекс 6 итакдалеепопорядку
arr=([1]=One Two Three Four Five Six Seven Eight Nine Ten [10]=Eleven) ?
5)declare –a arr
6)arr=(`ls`)
24
Обращение к элементам массива: ${<имя_массива>[<индекс>]}
$ echo ${arr[2]} Three
$ ${arr[2]}=NotThree echo ${arr[2]}
NotThree
Удаление элементов массива или всего массива: unset <имя_массива>[<индекс>]
unset <имя_массива>
$ unset arr[5]
$ echo ${arr[5]}
?
$ unset arr echo arr
?
РАБОТА С МАССИВАМИ
Специальный синтаксис при работе с массивами |
Примеры использования: |
|
(вместо * можно использовать @): |
arr=(One Two Three Four Five Six Seven Eight Nine Ten Eleven) |
|
${arr[*]} – получитьвсеэлементымассива |
for i in ʺ${arr[@]}ʺ; do |
|
|
echo $i |
|
${!arr[*]} – получитьвсеиндексывмассиве |
done |
|
${#arr[*]} – получитьчислоэлементов массива |
$ echo ${!arr[*]} |
|
${#arr[0]} – длинаэлементамассива синдексом 0 |
0 1 2 3 4 5 6 7 8 9 10 |
|
$ echo ${#arr[@]} |
||
|
||
|
11 |
|
|
$ ${#arr[3]} |
|
|
4 |
25
