Bash中使用printf输出重复字符n次
主要利用printf的格式化输出字符串:
printf '*%.0s' {1..5}
这会输出连续的5个星号
- ‘%.0s’:表示输出的字符串宽度为0,也就是什么也不会输出
- {1..5}:bash的展开功能,它实际是1 2 3 4 5。在printf中也就是依次输出12345,但是要根据格式字符串的要求输出。
- printf ‘%.0s’ {1..5}:结合上面两条,这实际上是执行了5次printf,但什么也没输出。但是注意%前面的‘*’,这是我们要输出的东西,它在格式化字符串中也就是代表它也是格式的一步分,由于printf输出的参数{1..5}在格式化字符串中被屏蔽了,所以只会输出’*’,并且重复了5次。