'xargs grep' is hard, because grep(1) exits with a status of 1 for no
match, which is not an error, but xargs(1) takes that as an error, which
is confused with other errors.
This trick with sh(1) was suggested by Paul, and nicely solves this
problem.
We also need to change $opts to be a normal variable.
We can't export bash array variables, and passing them to sh(1) -c is
not great; escapes could be messed. It's more robust to use a normal
variable.
Link: <https://lists.gnu.org/archive/html/bug-grep/2025-10/msg00029.html> Suggested-by: Paul Eggert <eggert@cs.ucla.edu> Signed-off-by: Alejandro Colomar <alx@kernel.org>