Ho uno script di shell con questo codice:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
Ma il codice condizionale viene sempre eseguito, perché hg st
stampa sempre almeno un carattere di nuova riga.
- C'è un modo semplice per eliminare gli spazi bianchi
$var
(cometrim()
in PHP )?
o
- Esiste un modo standard di affrontare questo problema?
Potrei usare sed o AWK , ma mi piacerebbe pensare che ci sia una soluzione più elegante a questo problema.
$ var=$(echo)
$ [ -n $var ]; echo $? #undesired test return
0
$ [[ -n $var ]]; echo $?
1
echo " This is a string of char " | xargs
. Se invece avete una sola citazione nel testo è possibile effettuare le seguenti operazioni: echo " This i's a string of char " | xargs -0
. Nota che menziono l'ultimo di xargs (4.6.0)
test=`echo`; if [ -n "$test" ]; then echo "Not empty"; fi
, questo comunque lo farà test=`echo "a"`; if [ -n "$test" ]; then echo "Not empty"; fi
- quindi alla fine ci deve essere più di una semplice riga.
echo $A | sed -r 's/( )+//g'
;