मेरे पास इस कोड के साथ एक शेल स्क्रिप्ट है:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
लेकिन सशर्त कोड हमेशा निष्पादित होता है, क्योंकि hg st
हमेशा कम से कम एक न्यूलाइन वर्ण प्रिंट करता है ।
- वहां से खाली स्थान के पट्टी के लिए एक सरल तरीका है
$var
(जैसेtrim()
में पीएचपी )?
या
- क्या इस मुद्दे से निपटने का एक मानक तरीका है?
मैं sed या AWK का उपयोग कर सकता हूं , लेकिन मुझे लगता है कि इस समस्या का एक और अधिक सुंदर समाधान है।
$ var=$(echo)
$ [ -n $var ]; echo $? #undesired test return
0
$ [[ -n $var ]]; echo $?
1
echo " This is a string of char " | xargs
:। आप फिर भी पाठ में एक भी बोली है, तो आप निम्नलिखित कर सकते हैं: echo " This i's a string of char " | xargs -0
। ध्यान दें कि मैंने xargs (4.6.0)
test=`echo`; if [ -n "$test" ]; then echo "Not empty"; fi
, हालांकि यह होगा test=`echo "a"`; if [ -n "$test" ]; then echo "Not empty"; fi
- इसलिए अंत में सिर्फ एक नई रेखा से अधिक होना चाहिए।
echo $A | sed -r 's/( )+//g'
;