我想以可读的方式打印列表.我使用循环遍历每个元素并创建一个用逗号和换行符格式化的新列表.问题是在输出的第一行,我想要一个标题.例如,我想打印这样的东西:
List: red, green, blue, black, cars, busses, ...
问题是在第二行和后续行中创建缩进.我希望缩进具有给定的长度.因此,问题减少到创建给定长度的空行.也就是说,我想要一个create_empty_line_of_length
输出给定空间量的函数.
length=5 echo "start:$(create_empty_line_of_length $length) hello"
在这种情况下输出应该是:
start: hello
有谁知道如何做到这一点?
printf '%7s'
可能是最有效的方法.
它是大多数时候内置的shell,如果不是/ usr/bin/printf作为coreutils的后备存在.
所以
printf '%7s%s\n%7s%s\n' '_' 'hello' '_' 'world'
产生
_hello _world
(我在这里使用了_而不是space,但是空间也有效,因为bash理解'')
这将是
yes ' ' | head -7 | tr -d '\n'
将"7"更改为您的号码.
也许你应该看看
man fmt
也.