Bash: различия между версиями
Материал из lulzette's wiki
Losted (обсуждение | вклад) Нет описания правки |
Losted (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
oh-my-bash: https://github.com/ohmybash/oh-my-bash <br> | |||
[[awk]] | [[awk]] |
Версия от 16:39, 13 декабря 2020
oh-my-bash: https://github.com/ohmybash/oh-my-bash
http://mywiki.wooledge.org/BashPitfalls
if
[ *условие* ] && команда
- выполнит команду если условие верно[ *условие* ] || команда
- выполнит команду если условие ложно
[ -f path ]
- Наличие файла[ -d path ]
- Наличие директории
Скобки
[ — является специальной встроенной командой test воспринимающей свои аргументы как выражение сравнения или файловую проверку […..].
[[ — расширенный вариант от «[«, является зарезервированным словом, а не командой, его bash выполняет как один элемент с кодом возврата. Внутри «[[….]]» разрешается выполнение операторов &&, || которые приводят к ошибке в обычных скобках «[….]» тем самым вариант с двойной скобкой более универсален.
(( — является арифметическими выражениями, которое так же возвращают код 0. Тем самым такие выражения могут участвовать в операциях сравнения.
Приведу список логических операторов, которые используются для if|then|else:
-z — строка пуста
-n — строка не пуста
=, ( == ) — строки равны
!= — строки неравны
-eq — равно
-ne — неравно
-lt,(< ) — меньше
-le,(<=) — меньше или равно
-gt,(>) — больше
-ge,(>=) — больше или равно
! — отрицание логического выражения
-a,(&&) — логическое «И»
-o,(||) — логическое «ИЛИ»