~ $ IFS=' ' ; declare -a "a=( $( printf %q\  1 two ' th r ee ' '$( four >&2
)' ) )" ; set -- "${a[@]}" ; printf -- -%s-\ \  "$@" ; printf \\n
-1-  -two-  - th r ee -  -$( four >&2 )-

On Thu, Dec 5, 2024, 5:48 PM Chet Ramey <chet.ra...@case.edu> wrote:

> On 12/5/24 9:41 AM, Clark Wang wrote:
> > It would be easier to manipulate positional params if we can write like
> > `printf -v 1`.
>
> Use an array. Use printf to write values to the array elements, then use
> set -- "${array[@]}" (or "${array[@]:1}" depending on how closely you
> want the array to parallel the positional parameters) to set the positional
> parameters.
>
> Chet
> --
> ``The lyf so short, the craft so long to lerne.'' - Chaucer
>                  ``Ars longa, vita brevis'' - Hippocrates
> Chet Ramey, UTech, CWRU    c...@case.edu    http://tiswww.cwru.edu/~chet/
>

Reply via email to