Действия

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

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

Нет описания правки
Нет описания правки
Строка 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/

И в виде одного PDF

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

}