How to run commands in a sub-shell and suppress output in the background that’s ZSH & shellcheck compatible

TL;DR: This works:

( (
    bar
    foo
) 1>&2>& & )

So, basically, what this does is run a sub-shell then bury your commands in another sub-shell and closes all STDOUT being reported and is sent to the background. I honestly am still not sure how this works!


&!

Because I use shellcheck with my zsh scripts, the following flagged an unknown error in shellcheck (because shellcheck does not support zsh at the moment) and it wouldn’t lint the file:

() (
    foo
    bar
) &> /dev/null &!

Specifically, it was the &! that wasn’t working (but is a valid ZSH directive to suppress background output). I would always get job output at the least using most of the suggestions, e.g., on Stack Exchange. So, I went down a Googling rabbit hole with no answers until I landed on:

https://www.baeldung.com/linux/run-multiple-commands-in-background

After navigating the formatting issues, I came up with the above Bash-compatible solution to run commands in the background with no output!

🙌