Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab1 / Лекция 1. Язык командного интерпретатора Bash.pdf
Скачиваний:
10
Добавлен:
30.05.2025
Размер:
844 Кб
Скачать
☆

КОМАНДА 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

Соседние файлы в папке lab1