# Bash compound commands The main part of Bash's syntax are the so-called **compound commands**. They\'re called like that because they use \"real\" commands ([simple commands](../../syntax/basicgrammar.md#simple_commands) or [lists](../../syntax/basicgrammar.md#lists)) and knit some intelligence around them. That is what the essential \"Bash language\" is made of. ## Command grouping - grouping: [command grouping](grouping_plain.md) - grouping again: [command grouping in a subshell](grouping_subshell.md) ## Conditional reactions Note that conditionals can also be scripted using [list](../../syntax/basicgrammar.md#lists), which are syntax elements, not commands. - the \"new\" test command: [conditional expression](conditional_expression.md) - if-clause: [conditional branching](if_clause.md) - case statement: [pattern-based branching](case.md) ## Loops - [classic for-loop](classic_for.md) - [C-style for-loop](c_for.md) - [while loop](while_loop.md) - [until loop](until_loop.md) ## Misc - math: [arithmetic evaluation](arithmetic_eval.md) - menus: [user selections](user_select.md)