Was bedeutet der z-Wert in einem if-Ausdruck auf einem Linux-Skript?
In diesem Skript fand ich diese if
Ausdruck:
if [ -z $1 ]; then
echo "Usage: createpkg.sh <rev package>"
exit
else
CURRENT_VERSION=$1
fi
Mein problem ist, dass ich kann nicht herausfinden, was genau bedeutet diese -z
Wert.
Aus dem Inhalt der echo kann ich davon ausgehen, dass (vielleicht) $1
variable zeigt die Software-version. und, die (vielleicht) -z
ist ein void-Wert. Also, wenn ich das Skript ausführen, ohne die übergabe an die version der software, würde ich die Verpackung drucken mir die richtigen Verfahren, um das Skript auszuführen.
Aber ich bin nicht sicher über die wirkliche Bedeutung der -z
Wert.
- Als seitliche Anmerkung haben, sollten Sie wahrscheinlich schließen Sie die variable in Anführungszeichen.
if [ -z "$1" ];
. Ich erinnere mich nicht den genauen Grund (jemand ?) aber tut man das nicht, kann ein unerwartetes Verhalten in einigen Fällen. - Ja, @Antoine_935, wird es problematisch, wenn die variable enthält eine Leerzeichen. Es wird
if [ -z hello world ]
diebash
werden nicht in der Lage zu verstehen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom
man test
:Also die Bedingung:
bedeutet "wenn die variable $1 leer ist". Wo
$1
ist wahrscheinlich das erste Skript-parameter: wenn Sie es ausführen, wie./script <parameter1> <parameter2>
, dann$1=parameter1
,$2=parameter2
und so weiter../myscript.sh param1 param2...
oder/bin/sh /path/to/myscript.sh param1 param2...
help test
sagt:In Ihrem Beispiel, das Skript
Usage: createpkg.sh <rev package>
- und Ausfahrt, wenn ein argument nicht angegeben wurde.type test
zu überprüfen!