例えば Ruby では以下のようにすればできる。
n = 8
spaces = " " * n
p spaces # => " " (8個のスペースからなる文字列)
zsh の場合は printf を使えば作れる。
$ n=8
$ spaces=$(printf "%${n}s" "")
$ typeset -p spaces
typeset spaces=' '
けど、printf を使わなくても Parameter Expansion Flags を利用するともっと簡単に書ける。
$ n=8
$ spaces=${(l:$n:):-}
$ typeset -p spaces
typeset spaces=' '
${:-} で空文字を作り、指定文字数分右詰めにしてくれる l:N: フラグをつけている。
l:N: は標準で半角スペースで埋めてくれるが、padding に使う文字は指定できて、例えば l:N::0: というようにすれば zero padding になる。