20_1_bash
-
Upload
vadim12345 -
Category
Documents
-
view
215 -
download
0
description
Transcript of 20_1_bash
![Page 1: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/1.jpg)
Блок 20 – 1/1
Основы скриптов bashThis work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/3.0/ or send a
letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
![Page 2: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/2.jpg)
15.07.07 (c) 2007, Андрей Маркелов 2
Введение
● Назначение и создание скриптов● Взаимодействие с пользователем● Специальные переменные● Условное выполнение● Циклы● Отладка скриптов
![Page 3: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/3.jpg)
15.07.07 (c) 2007, Андрей Маркелов 3
Назначение и создание скриптов
● Назначение● Автоматизация часто встречающихся задач● Обработка текстов● Небольшие приложения и прототипы приложений● Многое другое...
● Создание скрипта● Любой текстовый редактор● #!/bin/bash● #!/bin/sh● #!/ / /путь к интерпретатору● chmod u+x myscript
![Page 4: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/4.jpg)
15.07.07 (c) 2007, Андрей Маркелов 4
Специальные переменные
● Статус завершения ● $?● exit число● 0 – успешно● 1-255 - ошибка
● Параметры командной строки● $* - все параметры● $1, $2, $3, $4, ... - параметры● $0 – исполняемый файл● $# - число параметров
![Page 5: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/5.jpg)
15.07.07 (c) 2007, Андрей Маркелов 5
Взаимодействие с пользователем
● read -p ''Введите число '' MYNUM● echo '' Ваше число '' $MYNUM● printf '' Ваше число %0.3f\n'' $MYNUM
● Синтаксис аналогичен функции printf()
![Page 6: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/6.jpg)
15.07.07 (c) 2007, Андрей Маркелов 6
Условное выполнение (1)
● || команда команда● tar cvf back.tar /data || echo ошибка
| mail rootархивации● && команда команда
● grep andrey /etc/passwd > /dev/null && echo andreyЕсть пользователь
![Page 7: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/7.jpg)
15.07.07 (c) 2007, Андрей Маркелов 7
Условное выполнение - test
● test ''$X'' = ''$Y'' && echo ''Ok!''
● [ ''$X'' = ''$Y'' ] && echo ''Ok!''
● if [ -f /home/andrey/test ]; then
echo ''Ok!''
fi
● Проверки● -f; -d; -x; -O;● -z; -n; =; !=; <; >; -a; -o● другие...
![Page 8: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/8.jpg)
15.07.07 (c) 2007, Андрей Маркелов 8
Условное выполнение (2)
If условие
then
команды
elif
команды
else
команды
fi
![Page 9: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/9.jpg)
15.07.07 (c) 2007, Андрей Маркелов 9
Цикл for
● for MYVAR in f1 f2 f3
do
echo $MYVAR
done
● for i in {1..100}
do
host=192.168.0.$i; ping $host
done
![Page 10: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/10.jpg)
15.07.07 (c) 2007, Андрей Маркелов 10
Цикл while
while условие
do
команда
done
● continue● break
![Page 11: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/11.jpg)
15.07.07 (c) 2007, Андрей Маркелов 11
Отладка скриптов
● bash -x myscript
![Page 12: 20_1_bash](https://reader035.fdocuments.in/reader035/viewer/2022081203/577c797e1a28abe05492db88/html5/thumbnails/12.jpg)
15.07.07 (c) 2007, Андрей Маркелов 12
ПРАКТИЧЕСКАЯ РАБОТА
Написание скриптов bash