我能用echo和bash来对字符串中的变量进行对齐吗?

14

我想在shell脚本中使用echo进行格式化。

这里是一个小的代码片段,它给我带来了问题:

echo -en "\rFileName    :   $filename   :    $index of $lines Completed"

$filename是一个长度不固定的字符串,这导致在终端中格式化时出现问题。我该如何解决这个问题?

这就是我的意思:

FileName :       a800_102 :    6 of 6 Completed
FileName :       ersf_1024    :    56 of 56 Completed

我希望在终端上显示表格格式。

1个回答

22

使用printf命令:

printf "\rFileName : %20s : %8d of %8d Completed" $filename $index $lines

2
请注意,如果此行代码在for循环中,您需要在单词“Completed”后添加换行符“\n”,否则它将只打印一行。 - CodyChan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接