P.S. Apologies, the || in that last command should be a &&. Here is the corrected command:

[[ $input = *[![:space:]]* ]] && xargs --null -I str echo str <<< "$input"

El dom, 9 may 2021 a las 23:04, Kurt von Laven (<kurt.von.laven@gmail.com>) escribió:
Hello,

When the -r, --no-run-if-empty option is combined with the -d, --delimiter or -0, --null options, the -r, --no-run-if-empty option does not take effect. The manual describes the intended behavior of the -r, --no-run-if-empty option: "If the standard input does not contain any nonblanks, do not run the command.  Normally, the command is run once even if there is no input.  This option is a GNU extension."

The following command correctly outputs nothing.
xargs --no-run-if-empty -I str echo str <<< ""

The following command incorrectly outputs 1 empty line.
xargs --no-run-if-empty --delimiter="\n" -I str echo str <<< ""

The following command incorrectly outputs 2 empty lines.
xargs --no-run-if-empty --null -I str echo str <<< ""

As a workaround according to this Stack Overflow answer, the following commands output nothing when the input consists only of whitespace.
[[ $input = *[![:space:]]* ]] && xargs --delimiter="\n" -I str echo str <<< "$input"
[[ $input = *[![:space:]]* ]] || xargs --null -I str echo str <<< "$input"

Be well,
Kurt von Laven