Mam skrypt powłoki z tym kodem:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
Ale kod warunkowy zawsze wykonuje się, ponieważ hg st
zawsze drukuje co najmniej jeden znak nowej linii.
- Czy istnieje prosty sposób na usunięcie białych znaków
$var
(jaktrim()
w PHP )?
lub
- Czy istnieje standardowy sposób radzenia sobie z tym problemem?
Mógłbym użyć sed lub AWK , ale chciałbym pomyśleć, że istnieje bardziej eleganckie rozwiązanie tego problemu.
$ var=$(echo)
$ [ -n $var ]; echo $? #undesired test return
0
$ [[ -n $var ]]; echo $?
1
echo " This is a string of char " | xargs
. Jeśli jednak mają jeden cytat w tekście można wykonać następujące czynności: echo " This i's a string of char " | xargs -0
. Zauważ, że wspominam o najnowszym xargs (4.6.0)
test=`echo`; if [ -n "$test" ]; then echo "Not empty"; fi
, ale to zrobi test=`echo "a"`; if [ -n "$test" ]; then echo "Not empty"; fi
- więc na końcu musi być coś więcej niż tylko nowa linia.
echo $A | sed -r 's/( )+//g'
;