在Bash中是否有缩进字符串的示例(用于输出)?我发现使用的示例,printf
但它们似乎没有按预期工作。我想简单地缩进一个给定的字符串,并带有一定数量的空格。
echo "Header"
indent "Item 1" 2
indent "Sub Item 1a" 4
indent "Sub Item 1b" 4
会产生输出
Header
Item 1
Sub Item 1a
Sub Item 1b
在中printf
,类似的%3s
意思是“一个字符串,但是具有确保该字符串至少为3
列宽所需的尽可能多的初始空格”。
即使该字符串是空字符串''
,该%3s
方法也有效,在这种情况下,其含义实际上是“三个空格”。
因此,例如,indent "Sub Item 1a" 4
可以表示为printf '%4s%s\n' '' "Sub Item 1a"
,它打印四个空格,后跟"Sub Item 1a"
一个换行符。
如果需要,可以将其实现indent
为一个函数:
function indent () {
local string="$1"
local num_spaces="$2"
printf "%${num_spaces}s%s\n" '' "$string"
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句