在bash中使用星号符号重复打印字符

在bash中使用星号符号重复打印字符
print '*' * 80

这个 python 代码片段打印 80 个星号,我经常将其用作日志文件中的分隔符。

如何使用运算符重载在 bash 脚本中执行此操作?

答案1

在 shell ( ksh, zsh, bash) 中你可以这样做:

stars=$(printf '%*s' 80 '')
echo "${stars// /*}"

可以bash选择这样做:

printf -v stars '%*s' 80 ''
echo "${stars// /*}"

说明:printf使用格式字符串%*s,这意味着生成通过参数提供的长度的字符串。因此,第一个参数 ( 80) 指定长度,第二个参数指定''要有效打印的字符串(空字符串),但将空白填充到定义的宽度。请注意,这也可以表示为printf "%80s" '',尽管我使用长度的参数化版本来明确它可以是可变参数。

相关内容