【问题标题】:Horizontal and Vertical Line Spacing with a unknown variable length具有未知可变长度的水平和垂直行距
【发布时间】:2019-08-23 13:14:44
【问题描述】:

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

我试过下面的代码

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                                    |"
"|                                                                  |" 
" -------------------------------------------------------------------" 

【问题讨论】:

标签: linux bash sh width spacing


【解决方案1】:

使用printf 代替echo

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多