Bash: различия между версиями
Материал из lulzette's wiki
Losted (обсуждение | вклад) (→if) |
Losted (обсуждение | вклад) (→if) |
||
Строка 9: | Строка 9: | ||
* <code>[ -f path ]</code> - Наличие файла | * <code>[ -f path ]</code> - Наличие файла | ||
* <code>[ -d path ]</code> - Наличие директории | * <code>[ -d path ]</code> - Наличие директории | ||
<source> | |||
Скобки | |||
[ — является специальной встроенной командой test воспринимающей свои аргументы как выражение сравнения или файловую проверку […..]. | |||
[[ — расширенный вариант от «[«, является зарезервированным словом, а не командой, его bash выполняет как один элемент с кодом возврата. Внутри «[[….]]» разрешается выполнение операторов &&, || которые приводят к ошибке в обычных скобках «[….]» тем самым вариант с двойной скобкой более универсален. | |||
(( — является арифметическими выражениями, которое так же возвращают код 0. Тем самым такие выражения могут участвовать в операциях сравнения. | |||
Приведу список логических операторов, которые используются для if|then|else: | |||
-z — строка пуста | |||
-n — строка не пуста | |||
=, ( == ) — строки равны | |||
!= — строки неравны | |||
-eq — равно | |||
-ne — неравно | |||
-lt,(< ) — меньше | |||
-le,(<=) — меньше или равно | |||
-gt,(>) — больше | |||
-ge,(>=) — больше или равно | |||
! — отрицание логического выражения | |||
-a,(&&) — логическое «И» | |||
-o,(||) — логическое «ИЛИ» | |||
</source> |
Версия от 11:51, 5 июля 2020
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,(||) — логическое «ИЛИ»