%20!%3D%20(Test%20-z%20%24st)%2C%20richtig%3F.png)
Während ich las,
test -n $string
==> Der Beendigungsstatus ist 0, $string
wennnicht null, 1 sonst
Und
test -z $string
==> Der Beendigungsstatus ist 0, wenn$string
ist Null, 1 sonst
Aber in diesem speziellen Beispiel (ich habe versucht, eine Nullzeichenfolge zu erstellen) scheint mir etwas zu fehlen.
#!/bin/sh
str=""
test -n $str
echo $?
test -z $str
echo $?
Die Ausgabe lautet:
0
0
Kann jemand eine Erklärung für dieses seltsame Verhalten geben?
Antwort1
$str
In Anführungszeichen setzen !
Der -n-Test erfordert, dass die Zeichenfolge in den Testklammern in Anführungszeichen steht. Die Verwendung einer nicht in Anführungszeichen gesetzten Zeichenfolge mit ! -z oder sogar nur der nicht in Anführungszeichen gesetzten Zeichenfolge in den Testklammern (siehe Beispiel 7-6) funktioniert normalerweise, dies ist jedoch eine unsichere Vorgehensweise. Setzen Sie eine getestete Zeichenfolge immer in Anführungszeichen.Andere Vergleichsoperatoren