Основа:
первая строка файла:
#!/bin/bash
Сделать файл исполняемым:
chmod +x
Выполнить:
./myscript
Вывод сообщений:
echo "Some text"
Математические операции:
$((a+b))
Разделители полей IFS:
IFS=$'\n'
Ветвление:
if [[ условие ]]
then
# действия, если условие истинно
fi
Условия (строки):
-z <строка>
# строка пуста
-n <строка>
# строка не пуста
<стр1> == <стр2>
# строки равны
<стр1> != <стр2>
# строки не равны
Пример:
if [[ -z $1 ]]
then
echo “Первый аргумент пустой!”
fi
if [[ $var1 == $var2 ]]
then
echo “Переменные равны!”
fi
Условия [числа (строки)]:
-d fileПроверяет, существует ли файл, и является ли он директорией.
-e fileПроверяет, существует ли файл.
-f file Проверяет, существует ли файл, и является ли он файлом.
-r fileПроверяет, существует ли файл, и доступен ли он для чтения.
-s file Проверяет, существует ли файл, и не является ли он пустым.
-w fileПроверяет, существует ли файл, и доступен ли он для записи.
-x fileПроверяет, существует ли файл, и является ли он исполняемым.
file1 -nt file2 Проверяет, новее ли file1, чем file2.
file1 -ot file2 Проверяет, старше ли file1, чем file2.
-O file Проверяет, существует ли файл, и является ли его владельцем текущий пользователь.
-G fileПроверяет, существует ли файл, и соответствует ли его идентификатор группы идентификатору группы текущего пользователя.
Условия (файлы):
n1 -eq n2 Возвращает истинное значение, если n1 равно n2.
n1 -ge n2 Возвращает истинное значение, если n1 больше или равно n2.
n1 -gt n2 Возвращает истинное значение, если n1 больше n2.
n1 -le n2 Возвращает истинное значение, если n1 меньше или равно n2.
n1 -lt n2 Возвращает истинное значение, если n1 меньше n2.
n1 -ne n2 Возвращает истинное значение, если n1 не равно n2.
Условия (логические):
! # отрицание логического выражения
&& # логическое «И»
|| # логическое «ИЛИ»
альтернативы:
if [[ условие ]]
then
# действия, если условие истинно
еlse
# действия, если условие ложно
fi
if [[ условие1 ]]
then
# действия, если условие1 истинно
elif [[ условие2 ]]
then
# действия, если условие1 ложно,
# но условие2 истинно
еlse
# действия, если оба условия ложны
fi
case переменная in
знач1)
# действия, если переменная==знач1
;;
знач2)
# действия, если переменная==знач2
;;
*)
# действия, если переменная
# не равна ни одному из вариантов
esac
Циклы:
for переменная in список_значений
do
# действия, каждый раз переменная
# принимает следующее значение
# из списка
done
break прервать выполнение
сontinue перейти на след. значение
while [[ условие ]]
do
# действия, пока условие истинно
done
while [[ условие ]]
do
# действия, пока условие истинно
done
read переменная
записать введенное пользователем
значение в переменную