例えば 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 になる。