mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Added explanation for jobs flags (issue #1429), with some portable alternatives
10
SC2039.md
10
SC2039.md
@@ -207,6 +207,16 @@ reuse_quote()(
|
|||||||
reuse_quote "$@"
|
reuse_quote "$@"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### `jobs` flags
|
||||||
|
|
||||||
|
The only acceptable flags under POSIX sh for `jobs` are `-l` and `-p` ([see spec](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/jobs.html)). Common flags supported by other shells are `-s` and `-r`, to check for stopped/suspended jobs and running jobs. A portable alternative is using `grep` or `awk`:
|
||||||
|
```sh
|
||||||
|
"$(jobs | awk '/(S|s)(topped|uspended)/')" # instead of jobs -s
|
||||||
|
"$(jobs | awk '/(R|r)(unning)/')" # instead of jobs -r
|
||||||
|
```
|
||||||
|
Although the state of stopped jobs is `Stopped` in Bash and dash, and it's the one specified by POSIX, `Suspended` is also a valid alternative (but Zsh happens to not respect the capitalization, that's why we try to match `suspended`). Similarly, the state of running jobs is `Running` according to POSIX. Bash and dash respect this, but Zsh uses `running`.
|
||||||
|
|
||||||
## Exception
|
## Exception
|
||||||
|
|
||||||
Depends on what your expected POSIX shell providers would use.
|
Depends on what your expected POSIX shell providers would use.
|
Reference in New Issue
Block a user