कोड का मेरा वर्तमान स्निपेट इस तरह दिखता है ...
#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 स्थान इंडेंट करता हूं। आउटपुट को पठनीय और समझने में आसान रखना।
Im हमें "कॉलम" विकल्प देख रहा है और आउटपुट को अधिक गतिशील बनाता है और प्रारूप के अनुरूप है, स्क्रीन आकार या var परिणाम से कोई फर्क नहीं पड़ता। मुझे अपने कोड में सभी "\ t" से भी छुटकारा पाना अच्छा लगेगा। मैंने बिना किसी सफलता के प्रिंटफ की कोशिश की है।
मैंने कई अलग-अलग तरीकों से गुगल किया और विशिष्ट उत्तर नहीं देखा जिसे मैं ढूंढ रहा हूं या एक भिन्नता जिसे मैं एक उत्तर आकर्षित कर सकता हूं।
आपके सहयोग के लिए धन्यवाद। बीटीडब्ल्यू। यह पहला कोड है जिसे मैंने कभी लिखा है इसलिए आसान दोस्तों :)
1 उत्तर
आप कॉलम उपयोगिता का उपयोग करने का प्रयास कर सकते हैं। इसका एकमात्र उद्देश्य आउटपुट को कॉलम में स्वरूपित करना है। echo
या printf
के साथ वही काम करने की कोशिश करने से यह आसान हो सकता है।
यदि आपको printf
का उपयोग करना है, तो आप "%25.25s"
जैसे प्रारूप विनिर्देशक का उपयोग करना चाहेंगे। पहली संख्या "न्यूनतम फ़ील्ड चौड़ाई" है, जो (इस मामले में) आउटपुट को कम से कम 25 वर्ण चौड़ा होने का कारण बनती है। यदि आउटपुट छोटा है, तो यह व्हाइटस्पेस के साथ गद्देदार है। दूसरी संख्या प्रिंट करने के लिए वर्णों की अधिकतम संख्या को इंगित करती है। जब ये दो नंबर समान होते हैं, तो यह प्रभावी रूप से स्ट्रिंग को ऐसे फ़ील्ड में प्रिंट करने के लिए कहता है जो बिल्कुल 25 वर्ण चौड़ा हो। आप इसका उपयोग स्क्रीन पर समान मात्रा में जगह लेने के लिए अलग-अलग लंबाई के तारों को मजबूर करने के लिए कर सकते हैं।
संबंधित सवाल
नए सवाल
bash
बैश कमांड शेल के लिए लिखी गई लिपियों के बारे में प्रश्नों के लिए। त्रुटियों / वाक्यविन्यास त्रुटियों के साथ शेल स्क्रिप्ट के लिए, कृपया यहां पोस्ट करने से पहले शेलचेक प्रोग्राम (या वेब शेलचेक सर्वर पर https://shellcheck.net) के साथ उन्हें जांचें। बैश के इंटरैक्टिव उपयोग के बारे में सवाल स्टैक ओवरफ्लो की तुलना में सुपर उपयोगकर्ता पर ऑन-टॉपिक होने की अधिक संभावना है।
printf
वहां होना चाहिए जहां आप शोध पर अपना समय व्यतीत कर रहे हैं। एक बार जब आपman printf
दस्तावेज़ीकरण (छोटे नमूने करके) के 20-30% को समझ लेते हैं, तो बाकी स्पष्ट हो जाएगा। कुछprintf
मैन पेज मेंexamples
लेबल वाला सेक्शन भी होता है। आपको कामयाबी मिले।c
टैग है, मैं उल्लेख करूंगा किprintf
c
भाषा में शेलprintf
फ़ंक्शन का "पैरेंट" है। मुझे यकीन नहीं है कि आपको लगता है कि आपकोc
मेंprintf
का उपयोग करने के लिए कोड करने की आवश्यकता है, लेकिन आप ऐसा नहीं करते हैं। (यह बहुत अच्छा दिखता है, लेकिन शेल और OS संस्करणों के आधार पर सुविधाएँ भिन्न हो सकती हैं: ss64.com/bash /printf.html ) . आपको कामयाबी मिले।printf
से टैग द्वारा परिभाषित (जो सी फ़ंक्शन सी से संबंधित है)।$var
जैसे चर संदर्भों का उपयोग कर सकते हैं। आपको उनके चारों ओर के तार खोलने और बंद करने की आवश्यकता नहीं है।