如何在基于回声的输出中填充一定宽度的空格

How to pad spaces of a certain width in a echo based output

我想听取专家的建议,在基于回显的输出中填充一定宽度的空格,如下所示,以确保列以正确的空格分隔,因此,table 输出对漂亮的印刷

下面只是一段代码的echo语句:

if [[ $? -eq 0 ]]
then
    echo -e  "$CurrntTime $MachineName   : SSH connection is Up"
elif [[ $? -eq 255 ]]
    then
    echo -e "$CurrntTime $MachineName   : SSH Authentication Failed"

产生的输出:

下方输出如您所见,几乎没有失真。

02/17/2021 23:56:15 myserver001   : SSH connection is Up
02/17/2021 23:56:15 myserver00101   : SSH connection is Up

期望输出:

02/17/2021 23:56:15 myserver001     : SSH connection is Up
02/17/2021 23:56:15 myserver00101   : SSH connection is Up

正在将我的评论转换为答案,以便未来的访问者可以轻松找到解决方案。

您可以尝试此 printf,将 width=25 用于第二个字段,将 - 用于左对齐:

printf "%s %-25s : %s\n" "$CurrntTime" "$MachineName" "SSH connection is Up"

# or
printf "%s %-25s : %s\n" "$CurrntTime" "$MachineName" "SSH Authentication Failed"