Bash script

Основа:

первая строка файла: 

#!/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 переменная записать введенное пользователем значение в переменную

Признаки "плохого кода"

Кратко рассмотрим 12 признаков, когда код можно улучшить: 1. Duplicated Code  — иногда повторяющийся код не всегда несет в себе пользу. Выде...