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.la...@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 > <https://stackoverflow.com/a/17287097/3866835>, 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 >