के साथ बैश प्रिंटफ मैं एक वेरिएबल प्रिंट करने में थोड़ा उलझन में हूं जिसमें बैश में एक नया लाइन प्रतीक होता है।नई लाइन
var="Age:\n20\ncolor:\nred"
echo -e $var
Age:
20
color:
red
यह काम कर रहा है, लेकिन बहुत से लोगों को कहना है कि विकल्प के साथ कि गूंज not portable और it is better to use printf है।
मैंने कभी भी प्रिफ का उपयोग नहीं किया। इको कमांड का अनुकरण करने के लिए मैनुअल के अनुसार:
printf '%s\n' "$var"
Age:\n20\ncoloe:\nred
लेकिन यह चर के अंदर \ n पार्स नहीं करता है। मैनुअल में आमतौर पर यह उदाहरण होता है:
printf "Surname: %s\nName: %s\n" "$SURNAME" "$LASTNAME"
लेकिन यह मेरा मामला नहीं है और मेरे दृष्टिकोण से इसका उपयोग करने में सहज नहीं है।
printf "$ वर \ n"
यह पोर्टेबल है: मैं बस टाइपिंग है कि मैं इस का उपयोग कर सकते द्वारा पता चला? यदि मैं मेल कमांड पर $ var पास करता हूं तो क्या यह नई लाइन ब्रेक बचाएगा?
printf "$var\n" | mail -s subj [email protected]
'printf' के साथ समस्या यह है कि यह एक खोल कुछ गोले (बैश और ksh93), लेकिन दूसरों पर एक बाहरी प्रक्रिया पर निर्मित है (श, ksh88, csh) । इसलिए पुराने शैल पर 'printf' का उपयोग करके आप प्रोग्राम को धीमा कर सकते हैं, इस पर निर्भर करते हुए कि आप कितनी बार इसका इस्तेमाल करते हैं। – cdarke