Created SC3032 (markdown)

Vidar Holen
2022-11-02 20:57:28 -07:00
parent b6eb0b819c
commit a318e229b3

33
SC3032.md Normal file

@@ -0,0 +1,33 @@
## In POSIX sh, coproc is undefined.
### Problematic code:
```sh
#!/bin/sh
coproc nc shellcheck.net 80
```
### Correct code:
Either switch to Bash:
```sh
#!/usr/bin/env bash
coproc nc shellcheck.net 80
```
or try to write your script in a POSIX compatible way using named pipes.
### Rationale:
Your script uses a shell feature not supported by the shebang. Either rewrite the script to be portable, or change the shebang to explicitly require a shell like Bash.
There is no simple substitution for a coproc, though many use cases can be rewritten via redirection to named pipes (`mkfifo`).
### Exceptions:
None
### Related resources:
* Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!