zsh で N 個のスペースからなる文字列を生成したい
例えば 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 になる。
Author And Source
この問題について(zsh で N 個のスペースからなる文字列を生成したい), 我々は、より多くの情報をここで見つけました https://qiita.com/float168/items/b8a1b3b0978d0fd75080著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .