मेरे पास एक स्ट्रिंग है जो कुछ ऑपरेशन का परिणाम है जिसका मेरे पास कोई नियंत्रण नहीं है। जब मैं इस चर का उपयोग करके प्रिंट करता हूं echo
, मुझे मिलता है:
echo $myvar
hello
हालांकि, जब मैं करता हूं
if [ $myvar = "hello" ]; then
echo they are equal
else
echo they are not equal
fi
मुझे हमेशा लगता है कि वे समान नहीं हैं। मुझे संदेह है कि यह एक newline
चरित्र के कारण है।
स्ट्रिंग भी अजीब व्यवहार करती है। जब मैं करता हूं:
newVAR="this is my var twice: "$myvar$myvar
echo $newVAR
मुझे मिला:
hellois my var twice: hello
मैं कैसे जांच सकता हूं कि क्या यह वास्तव में ए के कारण है newline
, यदि हां, तो इसे हटा दें?
echo $foo
। echo "$foo"
इसके बजाय करो ।
printf '%q\n' "$string"
किसी भी स्ट्रिंग का एक बचा हुआ संस्करण प्राप्त कर सकते हैं । उदाहरण के लिए:printf '%q\n' 'foo\n'
->foo\\n
;printf '%q\n' $'foo\n'
->$'foo\n'