कोड का मेरा वर्तमान स्निपेट इस तरह दिखता है ...

#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" से भी छुटकारा पाना अच्छा लगेगा। मैंने बिना किसी सफलता के प्रिंटफ की कोशिश की है।

मैंने कई अलग-अलग तरीकों से गुगल किया और विशिष्ट उत्तर नहीं देखा जिसे मैं ढूंढ रहा हूं या एक भिन्नता जिसे मैं एक उत्तर आकर्षित कर सकता हूं।

आपके सहयोग के लिए धन्यवाद। बीटीडब्ल्यू। यह पहला कोड है जिसे मैंने कभी लिखा है इसलिए आसान दोस्तों :)

0
DigitalWolf 3 मार्च 2016, 04:36
कृपया अपने क्यू को वास्तविक डेटा/आकार/आदि के साथ संपादित करें जो "आउटपुट को अधिक गतिशील बनाने के लिए एक गुंजाइश रखता है और प्रारूप को स्क्रीन आकार या var परिणाम से कोई फर्क नहीं पड़ता"। उदाहरण के लिए, यदि आपके पास 80 कॉल स्क्रीन है, लेकिन 120 चौड़ा डेटा है, तो आप क्या करना चाहते हैं? लेकिन मूल रूप से, printf वहां होना चाहिए जहां आप शोध पर अपना समय व्यतीत कर रहे हैं। एक बार जब आप man printf दस्तावेज़ीकरण (छोटे नमूने करके) के 20-30% को समझ लेते हैं, तो बाकी स्पष्ट हो जाएगा। कुछ printf मैन पेज में examples लेबल वाला सेक्शन भी होता है। आपको कामयाबी मिले।
 – 
shellter
3 मार्च 2016, 04:44
जैसा कि आपके पास एक c टैग है, मैं उल्लेख करूंगा कि printf c भाषा में शेल printf फ़ंक्शन का "पैरेंट" है। मुझे यकीन नहीं है कि आपको लगता है कि आपको c में printf का उपयोग करने के लिए कोड करने की आवश्यकता है, लेकिन आप ऐसा नहीं करते हैं। (यह बहुत अच्छा दिखता है, लेकिन शेल और OS संस्करणों के आधार पर सुविधाएँ भिन्न हो सकती हैं: ss64.com/bash /printf.html ) . आपको कामयाबी मिले।
 – 
shellter
3 मार्च 2016, 04:46
यह न तो सी से संबंधित है और न ही printf से टैग द्वारा परिभाषित (जो सी फ़ंक्शन सी से संबंधित है)।
 – 
too honest for this site
3 मार्च 2016, 04:56
आउटपुट कभी भी 80 कॉल से अधिक नहीं होता है, मैंने इसे अपने बाकी कोड में सुनिश्चित किया है। मैंने प्रिंटफ पर शोध किया है और youtube Kris Occhipinti और ​​कई अन्य पर बहुत सारे वीडियो देखे हैं। कॉलम सीम सिंटैक्स होने के लिए मुझे मदद की ज़रूरत है, मैं आपके द्वारा सुझाए गए सुझावों पर और अधिक पेज पढ़ूंगा और देख सकता हूं कि मुझे क्या मिल सकता है। आपको धन्यवाद
 – 
DigitalWolf
3 मार्च 2016, 04:57
1
साइड नोट: आप डबल-उद्धृत स्ट्रिंग्स के अंदर $var जैसे चर संदर्भों का उपयोग कर सकते हैं। आपको उनके चारों ओर के तार खोलने और बंद करने की आवश्यकता नहीं है।
 – 
bta
3 मार्च 2016, 05:00

1 उत्तर

सबसे बढ़िया उत्तर

आप कॉलम उपयोगिता का उपयोग करने का प्रयास कर सकते हैं। इसका एकमात्र उद्देश्य आउटपुट को कॉलम में स्वरूपित करना है। echo या printf के साथ वही काम करने की कोशिश करने से यह आसान हो सकता है।

यदि आपको printf का उपयोग करना है, तो आप "%25.25s" जैसे प्रारूप विनिर्देशक का उपयोग करना चाहेंगे। पहली संख्या "न्यूनतम फ़ील्ड चौड़ाई" है, जो (इस मामले में) आउटपुट को कम से कम 25 वर्ण चौड़ा होने का कारण बनती है। यदि आउटपुट छोटा है, तो यह व्हाइटस्पेस के साथ गद्देदार है। दूसरी संख्या प्रिंट करने के लिए वर्णों की अधिकतम संख्या को इंगित करती है। जब ये दो नंबर समान होते हैं, तो यह प्रभावी रूप से स्ट्रिंग को ऐसे फ़ील्ड में प्रिंट करने के लिए कहता है जो बिल्कुल 25 वर्ण चौड़ा हो। आप इसका उपयोग स्क्रीन पर समान मात्रा में जगह लेने के लिए अलग-अलग लंबाई के तारों को मजबूर करने के लिए कर सकते हैं।

1
bta 3 मार्च 2016, 04:59