bash scripting
DESCRIPTION
Short introduction in bash scriptingTRANSCRIPT
Bash [email protected]
Bash Scripting
Указываем командный интерпретатор:#! [путь_к_интерпретатору]
Посмотреть список доступных: cat /etc/shells
Для комментариев используем конструкцию:#[текст_комментария]
Выполняем скрипт в режиме отладки (для bash):#!/bin/bash -x
Bash Scripting
Выполняем скрипт:- ./ [скрипт]
- [командный_интерпретатор] [скрипт]
- source [скрипт]
Bash Scripting
3 файловых дескриптора
Числовое значение Имя POSIX.1
0 стандартный вводstdin
STDIN_FILENO
1 стандартный выводstdout
STDOUT_FILENO
2 стандартный поток ошибокstderr
STDERR_FILENO
Bash Scripting
Перенаправляем вывод:[команда] > [файл]
Перенаправляем ввод:[команда] < [файл]
Перенаправляем заданный дескриптор в файл:[команда] * [дескриптор] > [файл]
Перенапрвляем дескрипторы:[команда] * [дескриптор]>& [дескриптор]
Bash Scripting
Конвеерная обработка (pipe - труба):[команда_1] | [команда_2] | [команда_3]
Bash Scripting
Переменные:-не имеют типов данных-переменная может включать число, символ и строку символов-нет необходимости объявлять переменную, достаточно просто присвоить значение
Bash Scripting
Типы переменных по доступу:- глобальные - переменные среды окружения, которые доступны во всех оболочках- локальные - доступны только в локальной оболочке
Типы переменных по содержимому:- строки- целые числа- константные значения- массивы
Bash Scripting
Инициализация переменной:[имя_переменной] = [значение_переменной]
Локальная переменная:local [имя_переменной] = [значение_переменной]
Доступ к переменной:$[имя_переменной]
Безымянная переменная:[команда] $([команда])
Bash Scripting
Задаем тип переменной:declare [имя] = [значение_переменной]
Константная переменная:readonly [имя] = [значение_переменной]
Bash Scripting
Массивы:[имя] = ([значение_1] [значение_2] [значение_N])
Удаляем значение:unset [имя][[индекс]]
Удаляем массив:unset [имя][*]
Просмотреть весь массив:echo ${[имя][*]}
Bash Scripting
Условный оператор:If:if [ [логическое_выражение] ]; then [команды_на_выполнение_если_истина] fi
If - Else:if [ [логическое_выражение] ]; then
[команды_на_выполнение_если_истина] else
[команды_на_выполнение_если_ложь] fi
Bash Scripting
Case:case [переменная] in
[значение_1]) [команды_на_выполнение]
break;; [значение_N])
[команды_на_выполнение] break;;
esac
Bash Scripting
Операторы цикла:For:for [переменная] in [массив_объектов]; do [команды_на_выполнение]
$[переменная]done
While:while [ [логическое_выражение] ]; do [команды_на_выполение] done
Bash Scripting
Until:until [ [логическое_выражение] ]; do [команды_на_выполнение]done
Bash Scripting
Операторы отношения:
-lt <
-gt >
-le <=
-ge >=
-eq ==
-ne !=
Bash Scripting
Функции:без параметров:function [имя_функции] {
[команды_на_выполнение]}
c параметрами:function [имя_функции] {
[команды_на_выполнение]$[номер_переданного_параметра]
}
Bash Scripting
Вывод:- echoecho [строка]
Note: используются для простого вывода.
- printf
Note: используется для форматированного вывода.
Bash Scripting
Ввод:- readread [переменная]