2017-02-06 5 views
-2
FROM_PROJECT=false 
if [[ -z $INV_NAME ]]; then 
    if [[ -z $PRO_NAME ]]; then 
      echo "error: variable not set" >&2 
      exit 1 
    elif [[ -z $INV_FILE ]]; then 
      echo "error: variable INV not set" >&2 
      exit 1 
    fi 
    FROM_PRO=true 
elif [[ -n $PRO_NAME ]] || [[ -n $INV_FILE ]]; then 
    echo "error: variable INV_NAME is not compatible with PRO_NAME and    INVENTORY_FILE" >&2 
    exit 1 

「-z」と「-n」がここで何をしているのかよくわかりません。このシェルスクリプトは何をしますか?

+0

http://explainshell.com/では、1行のシェルについて説明します。 '[[-z $ INV_NAME]]'や '[[-n $ PRO_NAME]]'をそこで使うことができます。 –

+0

ところで、 'true'と' false'文字列を条件として使用することは非常に悪いことです。これを行うコードは、通常、if $ FROM_PROJECTのようなものも行います。 (変数の内容に任意の値を与えることができ、セキュリティレビューがチェックする必要のあるものを追加する場合)を実行します。代わりに、空/空でない状態を使用してブール値を決定します。 –

+0

( 'some'value'が正の整数値を保持している場合はif((some_value))'が真理になります。また、それ自身が正の値を保持する変数の名前整数値)。 –

答えて

2

-zは、文字列が空であるかどうかをテストするために使用されます。

-nは逆です。

関連する問題