Ich habe ein Shell-Skript mit diesem Code:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
Der bedingte Code wird jedoch immer ausgeführt, da hg st
immer mindestens ein Zeilenumbruchzeichen gedruckt wird.
- Gibt es eine einfache Möglichkeit, Leerzeichen zu entfernen
$var
(wietrim()
in PHP )?
oder
- Gibt es eine Standardmethode für den Umgang mit diesem Problem?
Ich könnte sed oder AWK verwenden , aber ich würde gerne glauben, dass es eine elegantere Lösung für dieses Problem gibt.
$ var=$(echo)
$ [ -n $var ]; echo $? #undesired test return
0
$ [[ -n $var ]]; echo $?
1
echo " This is a string of char " | xargs
. Wenn Sie jedoch ein einfaches Anführungszeichen im Text haben, können Sie Folgendes tun : echo " This i's a string of char " | xargs -0
. Beachten Sie, dass ich die neuesten xargs (4.6.0)
test=`echo`; if [ -n "$test" ]; then echo "Not empty"; fi
, dies wird jedoch test=`echo "a"`; if [ -n "$test" ]; then echo "Not empty"; fi
- also muss am Ende mehr als nur eine neue Zeile stehen.
echo $A | sed -r 's/( )+//g'
;