使用printf创建标题

时间:2014-08-22 01:02:19

标签: linux bash printf

我对此很新,所以如果这是一个简单的问题我会提前道歉。 我想使用'printf'创建一个输出,如下所示:

#-------------------------------------------------------
#TEXT1                                #TEXT2
#--------------------------------------------------------

如果有人能给我一些关于如何做到的提示,我真的很感激。

3 个答案:

答案 0 :(得分:2)

这是使用具有特定字符数的长字符串的一种方式。

dashes=$(printf "%0.s-" {1..55})
printf "#$dashes\n#TEXT1%32s#TEXT2\n#$dashes-\n" " "

有关printfbash命令的详细信息,请参阅Bash-Hackers Wiki

如何运作

  • dashes=$(printf "%0.s-" {1..55}) - 使用brace expansioncommand substitution创建一个包含55个连续-字符的字符串变量。

  • \n - 打印换行符

  • %32s - 打印32个" "字符

更新

要在#TEXT1#TEXT2之间打印三个标签:

dashes=$(printf "%0.s-" {1..55})
printf "#$dashes\n#TEXT1\t\t\t#TEXT2\n#$dashes-\n" " "
  • \t表示制表符。

答案 1 :(得分:0)

只需在最后用换行符打印字符串。

printf '#-------------------------------------------------------\n'
printf '#TEXT1                                #TEXT2\n'
printf '#--------------------------------------------------------\n'

您也可以使用echo,因为字符串中没有格式。那么你最后不需要\n

答案 2 :(得分:0)

你可以试试这个,

$ printf "#-------------------------------------------------------\n#TEXT1                                #TEXT2\n#--------------------------------------------------------\n";
#-------------------------------------------------------
#TEXT1                                #TEXT2
#--------------------------------------------------------