Исполняемые файлы (bash)

Содержание

Слайд 2

Сценарии командной строки — это наборы тех же самых команд, которые можно

Сценарии командной строки — это наборы тех же самых команд, которые можно
вводить с клавиатуры, собранные в файлы и объединённые некоей общей целью. При этом результаты работы команд могут представлять либо самостоятельную ценность, либо служить входными данными для других команд.
Сценарии — это мощный способ автоматизации часто выполняемых действий.

Слайд 3

Как устроены bash-скрипты

Создайте пустой файл с использованием команды touch.
#!/bin/bash
В других строках этого

Как устроены bash-скрипты Создайте пустой файл с использованием команды touch. #!/bin/bash В
файла символ решётки используется для обозначения комментариев, которые оболочка не обрабатывает.
#!/bin/bash
# This is a comment
pwd
Whoami

Слайд 4

Установка разрешений для файла сценария

Попытка запуска файла сценария с неправильно настроенными разрешениями
.

Установка разрешений для файла сценария Попытка запуска файла сценария с неправильно настроенными разрешениями .

Слайд 5

#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged

#!/bin/bash # our comment is here echo "The current directory is:" pwd
in is:"
whoami

Слайд 6

Использование переменных

Переменные позволяют хранить в файле сценария информацию, например — результаты работы

Использование переменных Переменные позволяют хранить в файле сценария информацию, например — результаты
команд для использования их другими командами.
Существуют два типа переменных, которые можно использовать в bash-скриптах:
Переменные среды
Пользовательские переменные
#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"

Слайд 8

Пользовательские переменные

Bash-скрипты позволяют задавать и использовать в сценарии собственные переменные. Подобные переменные

Пользовательские переменные Bash-скрипты позволяют задавать и использовать в сценарии собственные переменные. Подобные
хранят значение до тех пор, пока не завершится выполнение сценария.
#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"

Слайд 9

Математические операции

Для выполнения математических операций в файле скрипта можно использовать конструкцию вида $((a+b)):
#!/bin/bash
var1=$((

Математические операции Для выполнения математических операций в файле скрипта можно использовать конструкцию
5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2

Слайд 10

Управляющая конструкция if-then

Управляющая конструкция if-then. В наиболее простом виде она выглядит так:
if команда
then
команды
fi
А

Управляющая конструкция if-then Управляющая конструкция if-then. В наиболее простом виде она выглядит
вот рабочий пример: #!/bin/bash
if pwd
then
echo "It works"
fi

Слайд 11

Управляющая конструкция if-then-else

Для того, чтобы программа смогла сообщить и о результатах успешного

Управляющая конструкция if-then-else Для того, чтобы программа смогла сообщить и о результатах
поиска, и о неудаче, воспользуемся конструкцией if-then-else. Вот как она устроена: if команда
then
команды
else
команды
fi

Слайд 12

Сравнение чисел

Сравнение чисел

Слайд 13

Задание 1:

Ввести числовую переменную.
Если переменная больше 5 то вывести на экран «The

Задание 1: Ввести числовую переменную. Если переменная больше 5 то вывести на
test value <переменная> is greater than 5» иначе «The test value <переменная> is not greater than 5»

Слайд 14

Сравнение строк

str1 = str2 Проверяет строки на равенство, возвращает истину, если строки идентичны;
str1

Сравнение строк str1 = str2 Проверяет строки на равенство, возвращает истину, если
!= str2Возвращает истину, если строки не идентичны;
str1 < str2Возвращает истину, если str1меньше, чем str2;
str1 > str2 Возвращает истину, если str1больше, чем str2;
-n str1 Возвращает истину, если длина str1больше нуля;
-z str1Возвращает истину, если длина str1равна нулю.

Слайд 15

#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user  is the current logged

#!/bin/bash user ="likegeeks" if [$user = $USER] then echo "The user $user
in user"
fi

Слайд 16

Циклы for

Базовая структура таких циклов: for var in list
do
команды
Done //дан

В

Циклы for Базовая структура таких циклов: for var in list do команды
каждой итерации цикла в переменную var будет записываться следующее значение из списка list

Слайд 17

Перебор простых значений

Перебор списка простых значений
#!/bin/bash
for var in first second third fourth

Перебор простых значений Перебор списка простых значений #!/bin/bash for var in first
fifth
do
echo The  $var item
done

Слайд 18

Перебор сложных

#!/bin/bash
for var in first "the second" "the third" "I’ll do

Перебор сложных #!/bin/bash for var in first "the second" "the third" "I’ll
it"
do
echo "This is: $var"
done

Слайд 19

Инициализация цикла списком, полученным из результатов работы команды

#!/bin/bash
file="myfile"
for var in $(cat

Инициализация цикла списком, полученным из результатов работы команды #!/bin/bash file="myfile" for var
$file)
do
echo " $var"
done

Слайд 20

Разделители полей

Причина вышеописанной особенности заключается в специальной переменной окружения, которая называется IFS

Разделители полей Причина вышеописанной особенности заключается в специальной переменной окружения, которая называется
(Internal Field Separator) и позволяет указывать разделители полей. По умолчанию оболочка bash считает разделителями полей следующие символы:
Пробел
Знак табуляции
Знак перевода строки
IFS=$'\n'

Слайд 21

Циклы for в стиле C

for (i = 0; i < 10; i++)
{
printf("number

Циклы for в стиле C for (i = 0; i { printf("number
is %d\n", i);
}
Схема цикла выглядит так:
for (( начальное значение переменной ; условие окончания цикла; изменение переменной ))
На bash это можно записать так:
for (( a = 1; a < 10; a++ ))
Пример:
#!/bin/bash
for (( i=1; i <= 10; i++ ))
do
echo "number is $i"
done