printf 如何像表格一样对齐输出?
Title Author
BaokyBook Baoky2
Use basename commandUse basename command .. Baoky
我的部分代码是这样的
titlelength=${#title};
首先我得到标题长度,然后我像这样打印
titlespace=`expr 60 - titlelength`;
printf "%s %${titlespace}s\n" "$title" "$author"
但对齐方式不对,如何使其正常工作
回复下面的答案:
进行更改后
我所有的左边都对齐到右边。它似乎不起作用。
最简单的事情是以固定宽度打印标题:
printf "%30s %s\n" "$title" "$author"
如果您想确定最大宽度,则需要在执行任何输出之前读取所有数据。或者你可以简单地将你的输出传送到column -t
。或者,将标题截断为选定的宽度(这种截断字符串的技术是一种 bashism):
printf "%30s %s\n" "${title:0:30}" "$author"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)