0
我的代码片段目前看起来像这样...bash shell的回声/ printf的如何格式化输出正确的方式
#Location of network config files
nfds="/etc/sysconfig/network-scripts/"
#Standard prefer of network config files
fil="ifcfg-"
#Array variable that feeds "$nic"
cards= array loop built from "nic=$(ls /sys/class/net | grep en)"
#Set color for Divice labile
div="\033[38;5;39m"
#Set Fix format and colour info
fix="\033[38;5;118m"
#Set color for OK
ok="\033[38;5;28m"
#Clear All font and color info
ctf="\033[0m"
function currentCardDefRoute(){
defr=$(grep DEFROUTE $nfds$fil$cards | cut -d = -f 2)
if [[ $defr = "yes" ]] || [[ $defr = "no" ]]; then
echo -e " "$div$cards$ctf"'s current default route is\t"$div$defr$ctf"\t\t\t\t ["$ok"OK"$ctf"]"
$st
else
echo -e " "$div$cards$ctf"'s current default route is \t"$fix"Missing"$ctf"\t\t\t ["$fix"PLEASE FIX"$ctf"]"
$st
fi
}
我所有的呼应可读性和一致的格式线缩进1个格。保持输出可读性和易于理解。
我期待我们的“列”选项,使输出更具动态性,并且无论屏幕大小或变化结果如何,格式都一致。我也很想摆脱我的代码中的所有“\ t”。我试过printf没有成功。
我GOOGLE了很多不同的方式,没有看到具体的答案林寻找或变化我可以从中得出答案。
谢谢你的帮助。 btw。这是我所写的第一个代码,所以很容易的家伙:)
请编辑你的Q与实际的数据/尺寸/等,使范围“使输出更加动态和格式一致,无论屏幕尺寸或变量结果”。例如,如果你有一个80英寸的屏幕,但120宽的数据,你想要发生什么? **但基本上''printf'应该是你花时间在研究上的地方。一旦你理解了20-30%的人类印记(通过做小样本),其余的将是显而易见的。一些'printf'手册页甚至有一个标有'examples'的部分。祝你好运。 – shellter
正如你有一个'c'标签,我会提到'c'语言中的'printf'是shell'printf'函数的“父”。我不确定你是否认为你需要用'c'来编写'printf',但是你不需要。 (这个看起来不错,但功能可能会有所不同,具体取决于外壳和操作系统版本:http://ss64.com/bash/printf.html)。祝你好运。 – shellter
这既不与C相关,也不与由标签定义的'printf'有关(与C函数C相关)。 – Olaf