में टेक्स्ट स्ट्रिंग को संरेखित करने के लिए सही तरीके से संरेखित और बाएं कैसे करें I एक बैश स्क्रिप्ट बना रहा हूं और एक ही पंक्ति पर दाएं संरेखित स्थिति (ठीक, चेतावनी, त्रुटि इत्यादि) के साथ एक संदेश प्रदर्शित करना चाहता हूं।बैश
रंगों के बिना, संरेखण सही है, लेकिन रंगों में जोड़ना सही गठबंधन कॉलम को अगली पंक्ति में गलत तरीके से लपेटता है। अमुद्रणीय दृश्यों (रंग परिवर्तन) होने लाइन छोटे, लंबे समय तक नहीं करना चाहिए -
#!/bin/bash
log_msg() {
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
NORMAL=$(tput sgr0)
MSG="$1"
let COL=$(tput cols)-${#MSG}
echo -n $MSG
printf "%${COL}s" "$GREEN[OK]$NORMAL"
}
log_msg "Hello World"
exit;
यह पूरी तरह से काम किया। इको-एन के बजाय printf का उपयोग करने पर टिप के लिए धन्यवाद। –
printf पर अच्छी टिप। बस जब मुझे बाएं समायोजित ग्रंथों की आवश्यकता थी :) – oligofren