我正在尝试打印特定格式的输出,其中输出在一个封闭的框中。 我正在使用"|"和"-"来创建它。我在"|"之间打印的输出是具有不同字符数的变量。 这弄乱了我的格式。
我尝试了以下代码
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
指定正确的空间填充