我正在尝试打印具有特定格式的输出,其中输出位于封闭的框中。 我正在使用“|”和“-”用于创建它。我在“|”之间打印的输出是具有不同字符数的变量。 这弄乱了我的格式。
我试过下面的代码
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
指定正确的空格填充
关于linux - 未知可变长度的水平和垂直行间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57627132/