J'ai un script shell avec ce code:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
Mais le code conditionnel s'exécute toujours, car hg st
imprime toujours au moins un caractère de nouvelle ligne.
- Existe-t-il un moyen simple de supprimer les espaces
$var
(commetrim()
en PHP )?
ou
- Existe-t-il un moyen standard de traiter ce problème?
Je pourrais utiliser sed ou AWK , mais j'aimerais penser qu'il existe une solution plus élégante à ce problème.
$ var=$(echo)
$ [ -n $var ]; echo $? #undesired test return
0
$ [[ -n $var ]]; echo $?
1
echo " This is a string of char " | xargs
. Si vous avez cependant une seule citation dans le texte que vous pouvez faire ce qui suit: echo " This i's a string of char " | xargs -0
. Notez que je mentionne le dernier des xargs (4.6.0)
test=`echo`; if [ -n "$test" ]; then echo "Not empty"; fi
, mais cela le fera test=`echo "a"`; if [ -n "$test" ]; then echo "Not empty"; fi
- il doit donc y avoir plus qu'une simple nouvelle ligne à la fin.
echo $A | sed -r 's/( )+//g'
;