Bash.Синтаксис
https://t.me/HotCheatSheetСинтаксис bash не так сложен, на нём вполне можно писать различные команды, вычисления. Самое то для автоматизации рутины. Я думаю большая часть уже знакома с этой темой, но это только начало длинного пути, спасибо что остаётесь с нами =)
Команды возвращающие код возврата
test — используется для логического сравнения. после выражения, неоьбходима закрывающая скобка "]"
[ — синоним команды test
[[ — расширенная версия "[", внутри которой могут быть использованы ||(или), &(и). Должна иметь закрывающую скобку "]]"
(( )) — математическое сравнение.
Перенаправление ввода-вывода
0<filename
или <filename
— перенаправление ввода из файла «filename»
1>filename
или >filename
— перенаправление вывода в файл «filename», если отключена опция noclobber
, то файл перезаписывается поступающими данными
1>|filename
или >|filename
— перенаправление вывода в файл «filename», файл перезаписывается поступающими данными
1>>filename
или >>filename
— перенаправление вывода в файл «filename», данные добавляются в конец файла, при отсутствии файл создаётся
2>filename
— перенаправление стандартного вывода ошибок в файл «filename»
2>>filename
— перенаправление стандартного вывода ошибок в файл «filename», данные добавляются в конец файла, при отсутствии файл создаётся
&>filename
— перенаправление вывода и ошибок в файл «filename»
2>&1
— перенаправление вывода ошибок на стандартный вывод
Логические операции
-z
<строка> — строка пуста
-n
<строка> — строка не пуста
=
, (==
) <строка> — строки равны
!=
<строка> — строки неравны
-eq
— равно
-ne
— неравно
-lt
,(<
) — меньше
-le
,(<=
) — меньше или равно
-gt
,(>
) — больше
-ge
,(>=
) — больше или равно
!
— отрицание логического выражения
-a
,(&&
) — логическое «И»
-o
,(||
) — логическое «ИЛИ»
Математические операции
+ — сложение
- — вычитание
* — умножение
/ — деление
** — возведение в степень
% — модуль(деление по модулю), остаток от деления
Массивы
${<массив>[@]} — получить строку, состоящую из всех элементов массива, разделённых пробелом.
{!<массив>[@]} — получить строку со всеми индексами или ключами массива, независимо от того, численные они или текстовые.
{<массив>[@]/тскет/текст} — Осуществить массовую замену первого вхождения подстроки «тскет» на «текст» во всех элементах массива и вернуть строку, составленную из результирующих элементов массива, разделённых пробелом.
declare -a <массив> — объявить индексированный массив
Массив=(элемент1 элемент2 элемент3) — инициализировать индексированный массив.
${<имя_массива>[0]} — получить первый элемент массива.
declare -A <массив> — объявить ассоциативный массив.
Массив=([<ключ1>]=<значение1> [<ключ1>]=<значение1>[<ключ1>]=<значение1>) — инициализировать ассоциативный массив.
Целочисленная математика
VAR=55
— Устанавливаем переменную VAR, равной 55
((VAR = VAR + 1))
— Добавляем единицу к переменной VAR. Обратите внимание на отсутствие знака '$'
((VAR+=1))
— Сокращённая форма записи инкремента
((++VAR))
— Другой способ увеличения VAR на единицу. Выполняет префиксный инкремент
((VAR++))
— Другой способ увеличения VAR на единицу. Выполняет постфиксный инкремент
echo $((VAR * 22))
— Умножаем VAR на 22 и передаем результат команде
echo $[VAR * 22]
— Устаревший способ сделать то же
((VAR<<3))
— Побитовый сдвиг влево (то же, что VAR*8)
((VAR>>3))
— Побитовый сдвиг вправо (то же, что VAR/8)
Условные операторы
if <выражение или команда возвращающая код возврата> then <команды> else <команды> fi if <выражение или команда возвращающая код возврата> then <команды> elif <выражение или команда возвращающая код возврата> then <команды> fi case $<переменная> in <номер>)<команды> ;; *)<команды> — выполняются если не было найдено подходящего варианта ;;
Циклы
for <переменная> in <список_значений> do <команды> done while <выражение или команда возвращающая код возврата> do <команды> done until <выражение или команда возвращающая код возврата> do <команды> done
Дополнительно
cat filename
|
grep pattern
— конвейер(|), передаёт вывод предыдущей команды на ввод следующей
echo a{p,c,d,b}e
— расширение скобок (данный вывод - ape ace ade abe)
#!/bin/bash
— для запуска скрипта с интерпретатором bash