Подтвердить что ты не робот

Разница в Bash между операторами IF с круглыми скобками и квадратными скобками

Немного узнав о , Я вижу четыре типа способов работы с операторами if:

  • Одиночная скобка - (...)
  • Двойная скобка - ((...))
  • Одиночная квадратная скобка - [...]
  • Двойные квадратные скобки - [[...]]

В чем разница между скобками и квадратными скобками в bash.

4b9b3361

Ответ 1

Те тесты, которые вы указали:

  • Single Parenthesis - (...) создает подоболочку
  • Двойная скобка - ((...)) предназначена для арифметической операции
  • Single Square Bracket - [...] - это синтаксис для POSIX test
  • Двойные квадратные скобки - [[...]] - синтаксис условных выражений bash (аналогично test, но более мощный)

не являются исчерпывающими, вы можете использовать логическую логику

if command; then ...

тоже, потому что команды имеют статус выхода. В bash, 0 есть true и > 0 есть false.

Вы можете видеть статус выхода следующим образом:

command
echo $?

Смотрите:

http://wiki.bash-hackers.org/syntax/basicgrammar
http://wiki.bash-hackers.org/syntax/arith_expr
http://mywiki.wooledge.org/BashGuide/TestsAndConditionals