On Wed, May 29, 2024 at 05:33:00PM +0300, Andy Shevchenko wrote: > On Wed, May 29, 2024 at 09:44:40PM +0800, Kent Gibson wrote: > > On Wed, May 29, 2024 at 04:27:00PM +0300, Andy Shevchenko wrote: > > > On Wed, May 29, 2024 at 09:18:47PM +0800, Kent Gibson wrote: > > > > On Wed, May 29, 2024 at 04:08:49PM +0300, Andy Shevchenko wrote: > > > > > On Tue, May 28, 2024 at 07:39:10AM +0800, Kent Gibson wrote: > > > > > > On Mon, May 27, 2024 at 07:17:37PM +0300, Andy Shevchenko wrote: > > > > > > > On Mon, May 27, 2024 at 08:44:20PM +0800, Kent Gibson wrote: > > > > > > > > On Mon, May 27, 2024 at 02:02:34PM +0200, Bartosz Golaszewski wrote: > > ... > > > > > > > > Fair point, but $@ doesn't give you that either: > > > > boo() { > > echo "star '$*'" > > echo "hash '$@'" > > } > > > > boo foo bar "baz bar2" > > > > gives: > > > > star 'foo bar baz bar2' > > hash 'foo bar baz bar2' > > Oh, this is unfortunate. It seems entire model with quotation depends on the > commands, printf makes it different, print -r -- makes it better, though, if > one uses non-space IFS for it. > > > Is there any form that gives you the format you want? > > Yes, but it requires an iteration over arguments, roughly something like below > (which is not yet what I want, but closer): > > for a in "$@"; do > echo -n '"$a" ' # echo -n seems not portable IIRC > done > echo > Ok, we're heading into the weeds here. The issue isn't that shellcheck is wrong, it is that the error message is not formatted the way you would like, and fixing that requires writing a function to perform that formatting as bash can't do it out of the box. That isn't a huge issue, as we currently don't have any parameters containing whitespace, but it is something that might want to be addressed at some point. Cheers, Kent.