How to set 4 space tab in bash

守給你的承諾、 提交于 2019-12-02 21:17:27

That's not a property of your shell (or php or cat). It's your terminal that manages the output.

Use the tabs command to change the behavior:

$ tabs 4

$ echo -e "a\tb"      
a   b
$ tabs 12

$ echo -e "a\tb" 
a           b

(tabs is specified in POSIX, and output above is "faked": it's still a tab character between the two letters.)

You can use setterm to set this

setterm -regtabs 4

I put it in my .bash_profile but its not bash related specifically

You can set either regular or irregular intervals using the tabs utility. It will work whether you're doing your own output, using cat to output a file that already includes tabs or using the output of a program you don't control.

However, if you're controlling your output it's preferable to use printf instead of echo and format strings instead of tabs.

$ printf '%-12s%8.4f %-8s%6.2f\n' 'Some text' 23.456 'abc def' 11.22
Some text    23.4560 abc def  11.22
$ format='%*s%*.*f %*s%*.*f\n'
$ printf "$format" -12 'Some text' 8 4 23.456 -8 'abc def' 6 2 11.22
Some text    23.4560 abc def  11.22

Unless you want someone else to be able to control the output of your program using the tabs utility.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!