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" ''
,尽管我使用长度的参数化版本来明确它可以是可变参数。