Bash: различия между версиями
Материал из lulzette's wiki
Losted (обсуждение | вклад) Нет описания правки |
Losted (обсуждение | вклад) Нет описания правки |
||
Строка 8: | Строка 8: | ||
[https://ruvds.com/doc/bash.pdf И в виде одного PDF] | [https://ruvds.com/doc/bash.pdf И в виде одного PDF] | ||
OpenNet: https://www.opennet.ru/docs/RUS/bash_scripting_guide/c2171.html | |||
== if == | == if == |
Версия от 02:11, 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 ]
- Наличие директории
Скобки
[ — является специальной встроенной командой test воспринимающей свои аргументы как выражение сравнения или файловую проверку […..].
[[ — расширенный вариант от «[«, является зарезервированным словом, а не командой, его bash выполняет как один элемент с кодом возврата. Внутри «[[….]]» разрешается выполнение операторов &&, || которые приводят к ошибке в обычных скобках «[….]» тем самым вариант с двойной скобкой более универсален.
(( — является арифметическими выражениями, которое так же возвращают код 0. Тем самым такие выражения могут участвовать в операциях сравнения.
Приведу список логических операторов, которые используются для if|then|else:
-z — строка пуста
-n — строка не пуста
=, ( == ) — строки равны
!= — строки неравны
-eq — равно
-ne — неравно
-lt,(< ) — меньше
-le,(<=) — меньше или равно
-gt,(>) — больше
-ge,(>=) — больше или равно
! — отрицание логического выражения
-a,(&&) — логическое «И»
-o,(||) — логическое «ИЛИ»