我正在处理自定义 ZSH 提示,我想n
在字符串中重复一个字符次(例如用于填充的空格)。该字符串被打印print -rP
(该-r
标志忽略回显转义约定,并且该-P
标志执行提示扩展)。
我有使用某种字符串替换的工作代码,但我不知道它是如何工作的。由于某种原因,我必须将要打印的字符数乘以二,这感觉就像黑客。
$ n=3
$ c='a'
$ print -rP "${(l:$n::$c:)}" # why doesn't this work?
ca
$ print -rP "${(l:(( $n * 2 ))::$c:)}" # but this does?
aaa
Run Code Online (Sandbox Code Playgroud)
那么,1)为什么乘以 2 时会起作用,2)在字符串中重复字符的正确语法是什么?