> For the complete documentation index, see [llms.txt](https://freebsdfrau.gitbook.io/serious-shell-programming/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/conditionals.md).

# Conditionals

Anything that produces a meaningful exit status, such as keywords, built-ins, and external executables can be a conditional. Most commonly combined with control flow elements, these conditionals are also useful for setting the exit status of functions and sub-shells.

However, another class of conditionals exists. When expanding variable names, an optional syntax allows the expansion itself to conditionally produce different results based on the variable contents and expansion operator used.
