Bash: различия между версиями
Материал из lulzette's wiki
Losted (обсуждение | вклад) Нет описания правки |
Losted (обсуждение | вклад) Нет описания правки |
||
Строка 19: | Строка 19: | ||
* <code>[ -d path ]</code> - Наличие директории | * <code>[ -d path ]</code> - Наличие директории | ||
Условия: | |||
* <code>-z</code> — строка пуста | |||
* <code>-n</code> — строка не пуста | |||
Условия-сравнения: | |||
* <code>-eq</code> или <code>=, ( == )</code> — равно | |||
* <code>-ne</code> или <code>!=</code> — неравно | |||
* <code>-lt,(< )</code> — меньше | |||
* <code>-le,(<=)</code> — меньше или равно | |||
* <code>-gt,(>)</code> — больше | |||
* <code>-ge,(>=)</code> — больше или равно | |||
{{#spoiler: | |||
<source> | <source> | ||
Скобки | Скобки | ||
Строка 55: | Строка 76: | ||
-o,(||) — логическое «ИЛИ» | -o,(||) — логическое «ИЛИ» | ||
</source> | </source> | ||
} |
Версия от 02:14, 12 января 2021
Красивости (oh-my-bash): https://github.com/ohmybash/oh-my-bash
AWK: awk
Tips&Tricks: http://mywiki.wooledge.org/BashPitfalls
Цикл статей от RuVDS: https://habr.com/ru/company/ruvds/blog/325522/
OpenNet: https://www.opennet.ru/docs/RUS/bash_scripting_guide/c2171.html
if
[ *условие* ] && команда
- выполнит команду если условие верно[ *условие* ] || команда
- выполнит команду если условие ложно
[ -f path ]
- Наличие файла[ -d path ]
- Наличие директории
Условия:
-z
— строка пуста
-n
— строка не пуста
Условия-сравнения:
-eq
или=, ( == )
— равно
-ne
или!=
— неравно
-lt,(< )
— меньше
-le,(<=)
— меньше или равно
-gt,(>)
— больше
-ge,(>=)
— больше или равно
{{#spoiler:
Скобки
[ — является специальной встроенной командой test воспринимающей свои аргументы как выражение сравнения или файловую проверку […..].
[[ — расширенный вариант от «[«, является зарезервированным словом, а не командой, его bash выполняет как один элемент с кодом возврата. Внутри «[[….]]» разрешается выполнение операторов &&, || которые приводят к ошибке в обычных скобках «[….]» тем самым вариант с двойной скобкой более универсален.
(( — является арифметическими выражениями, которое так же возвращают код 0. Тем самым такие выражения могут участвовать в операциях сравнения.
Приведу список логических операторов, которые используются для if|then|else:
-z — строка пуста
-n — строка не пуста
=, ( == ) — строки равны
!= — строки неравны
-eq — равно
-ne — неравно
-lt,(< ) — меньше
-le,(<=) — меньше или равно
-gt,(>) — больше
-ge,(>=) — больше или равно
! — отрицание логического выражения
-a,(&&) — логическое «И»
-o,(||) — логическое «ИЛИ»
}