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