# MD014 - Commands Show Output

This rule enforces that shell commands are followed by their output.

## Description

When documenting shell commands, it's helpful to show their output to provide context and demonstrate what to expect. This rule ensures that shell commands in code blocks are followed by their output.

## Configuration

- `show_output`: Whether to require output after shell commands (default: true)

## Examples

<!-- markdownlint-disable -->
### Valid

```markdown
```

$ ls -l
total 8
drwxr-xr-x  2 user  group  4096 Jan 1 12:00 dir1
drwxr-xr-x  2 user  group  4096 Jan 1 12:00 dir2

```text

```

$ echo "Hello"
Hello

```text
```

### Invalid

```markdown
```

$ ls -l

```text

```

$ echo "Hello"
<!-- markdownlint-enable -->

```text
```

### Fixed

```markdown
```

$ ls -l
total 8
drwxr-xr-x  2 user  group  4096 Jan 1 12:00 dir1
drwxr-xr-x  2 user  group  4096 Jan 1 12:00 dir2

```text

```

$ echo "Hello"
Hello

```text
```

### Special Cases

- Only applies to code blocks with shell commands (starting with `$` or `>`)
- Ignores code blocks without shell prompts
- Ignores code blocks with language specifiers other than `bash`, `sh`, `shell`, or `console`
- Allows empty output for commands that don't produce output (e.g., `cd`, `mkdir`)

## Related Rules

- MD031: Fenced code blocks should be surrounded by blank lines
- MD040: Fenced code blocks should have a language specified
