> 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/style/case.md).

# case

The opening `case`, patterns, and closing `esac` should be indented to the same level. If a pattern consists of a single action, it can be written on a single line with a single space before the terminator (`;;`) as long as the entire line is less than 80 characters wide. Split multiple statements onto multiple lines and place the terminator (`;;`) on its own line. Do not use the terminator (`;;`) for fallback pattern `*`.

```
case "$item1" in
patternA) ... ;; # optional comment
patternB) # optional comment
    ...
    ...
    ;;
*) ...
esac
if [ "$item2" ]; then
    case "$item2" in
    patternC) # optional comment
        ...
        ...
        ;;
    *) # optional comment
        ...
        ...
    esac
fi
```
