I am trying to print several lines in multiple columns of 30 characters width:

```sh
#!/bin/bash
chars_width=15
full_string="a\\nb\\nc\\nd"
number_of_columns=$(( $(tput cols) / $chars_width ))

for ((i = 0; i < number_of_columns; i++)); do
    formatting_string="$formatting_string%%-"$chars_width"s "
done

echo "$full_string" | xargs -L $number_of_columns | \
    while read -r values
    do
        printf "$formatting_string\\n" $values
    done
exit

```

While running this I would expect it to output:

```
a              b              c              d

```

But it outputs:

```
%-15s %-15s %-15s %-15s

```

How to put my dynamically built formatting rules for `printf` to use?