Действия

Bash: различия между версиями

Материал из lulzette's wiki

Строка 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,(||) — логическое «ИЛИ»