On 3/23/21 11:24 PM, L A Walsh wrote: > Too often I end up having to write something like > if (($#)); then <func|exec> "$@" > else <func|exec> #<func|exec> = function or executable call > fi > > It would be nice to have a expansion that preserves arg boundaries > but that expands to nothing when there are 0 parameters > (because whatever gets called still sees "" as a parameter) > > So, example, something like: > > $~ == "$@" #for 1 or more params > $~ == no param when 0 param, # so for the above if/else/endif > one could just use 1 line:
It's not clear to me, how you expect this to differ from the existing behavior of "$@" or "${arr[@]}" which already expands to <nothing> rather than an actual "" parameter. > <func|exec> $~ > > My examples used ~, as I didn't think it was used anywhere. > > I can't control how called programs will handle / deal with a > present, but empty parameter, which is why I thought something that > expands to nothing in the empty case would seem ideal. > > Anyone else have a trivial solution for this problem? Does "be mindblown when it worked as is to begin with" count? -- Eli Schwartz Arch Linux Bug Wrangler and Trusted User
OpenPGP_signature
Description: OpenPGP digital signature