Tengo un script de shell con este código:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
Pero el código condicional siempre se ejecuta, porque hg st
siempre imprime al menos un carácter de nueva línea.
- ¿Hay una manera simple de eliminar espacios en blanco
$var
(comotrim()
en PHP )?
o
- ¿Existe una forma estándar de tratar este problema?
Podría usar sed o AWK , pero me gustaría pensar que hay una solución más elegante para este problema.
$ var=$(echo)
$ [ -n $var ]; echo $? #undesired test return
0
$ [[ -n $var ]]; echo $?
1
echo " This is a string of char " | xargs
. Si por el contrario tiene una comilla simple en el texto se puede hacer lo siguiente: echo " This i's a string of char " | xargs -0
. Tenga en cuenta que menciono el último de xargs (4.6.0)
test=`echo`; if [ -n "$test" ]; then echo "Not empty"; fi
, sin embargo, esto lo hará test=`echo "a"`; if [ -n "$test" ]; then echo "Not empty"; fi
, por lo que debe haber más que una nueva línea al final.
echo $A | sed -r 's/( )+//g'
;