具有未知可变长度的水平和垂直线间距



我正在尝试打印特定格式的输出,其中输出在一个封闭的框中。 我正在使用"|"和"-"来创建它。我在"|"之间打印的输出是具有不同字符数的变量。 这弄乱了我的格式。

我尝试了以下代码

nodename=$(hostname)
cpu=$(cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l)
echo " ------------------------------------------------------------------"  
echo "|                                                                  |" 
echo "|          This is Bash Scripting                                  |" 
echo "|                                                                  |" 
echo "|  1 - This Machine Name is $nodename                              |" 
echo "|  2 - This Machine has $cpu CPU's                                 |"
echo "|                                                                  |" 
echo " -------------------------------------------------------------------" 

实际结果

" ------------------------------------------------------------------"  
"|                                                                  |" 
"|          This is Bash Scripting                                  |" 
"|                                                                  |" 
"|  1 - This Machine Name is test                              |" 
"|  2 - This Machine has 8 CPU's                                 |"
"|                                                                  |" 
" -------------------------------------------------------------------" 

预期成果

" ------------------------------------------------------------------"  
"|                                                                  |" 
"|          This is Bash Scripting                                  |" 
"|                                                                  |" 
"|  1 - This Machine Name is test                                   |" 
"|  2 - This Machine has 8 CPU's                                    |"
"|                                                                  |" 
" -------------------------------------------------------------------" 

使用printf而不是echo

printf "|  1 - This Machine Name is %-39s|n" "$nodename"

您可以使用%-39s指定正确的空间填充

最新更新