我可以使用echo和bash将字符串中的变量对齐吗?

Kir*_*ran 9 bash shell echo tabbing

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

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

echo -en "\rFileName    :   $filename   :    $index of $lines Completed"
Run Code Online (Sandbox Code Playgroud)

$filename是一个长度不一的字符串,这会导致终端格式化问题.我怎么能克服这个?

这就是我的意思:

FileName :       a800_102 :    6 of 6 Completed
FileName :       ersf_1024    :    56 of 56 Completed
Run Code Online (Sandbox Code Playgroud)

当我在终端上显示它时,我想要一个表格格式.

ric*_*chq 16

使用printf:

printf "\rFileName : %20s : %8d of %8d Completed" $filename $index $lines
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果此行在for循环中,则需要在“已完成”一词后添加换行符“\n”,否则将只打印一行。 (2认同)