ここで-zフラグはどういう意味ですか?

ここで-zフラグはどういう意味ですか?

-z以下のコードのフラグはどういう意味ですか?

if [ -z $TEST_PARAM ]; then

そのようなフラグのリストはありますか?

このようなロゴの場合はls -lどこで見つけることができるかを知っていますが、単一のロゴの場合はこれを説明するウェブサイトはありません。

答え1

-z STRING 方法:

STRINGの長さは0です。

次のコマンドを使用してすべてのリストを表示できます。man test

[test実際には通常シェルによって実装されますが、コマンドのエイリアスです。しかし、おそらく一つはあります/bin/[。これらすべての-Xテストはtest

答え2

[はこのユーティリティの別の名前ですtest。これらの間の唯一の違いは、[最後に追加のパラメータが必要であることです。]ほとんどのシステムには、マニュアルページと同じ内容[のマニュアルページがありますtest

[ほとんどのシェルには機能が組み込まれているため、testマニュアルページに記載されている正確な機能は、シェルで実際に使用できる機能とは若干異なる場合があります。-zただし、これはすべての実装で使用できる標準機能です。testなどの演算子を見つけるには、組み込み関数の説明または条件式セクションを探します-z

このコマンドは[ -z $TEST_PARAM ]実際になければなりません[ -z "$TEST_PARAM" ]。二重引用符の外側の変数拡張は、変数拡張よりもはるかに多くの操作を実行するためです。バラよりスペースやその他の特殊文字が原因でシェルスクリプトが停止するのはなぜですか?詳細については。引用符がない場合、値はTEST_PARAM単語に分割され、グローバルパターンに展開されます。代わりに"$TEST_PARAM"変数の値に展開されますTEST_PARAM。 thenの値がTEST_PARAM空の場合、$TEST_PARAMゼロ単語リストに展開されるため、実行されるコマンドはです[ -z ]。条件式を表現するには、1つの単語のみを使用してください。単語が空でない場合、条件はtrueです。これは-z演算子ではなく空でない文字列です。

また、見ることができますシングルまたはダブルカッコの使用 - bash

答え3

これは、「パラメータが存在しない場合は次のことを行います」を意味します。

以下で見ることができます:

$ ABC='1'                                                                                     
$ 
$ if [ -z $ABC ]; then echo "ABC"; # Nothing
fi;                                                          
$
$ if [ -z $XYZ ]; then echo "yes"; # echo "Yes"
fi;                                                         
yes
$

これを使用する例は私の.bashrcファイルから呼び出すことですが、tmux次のように再帰的に呼び出すことはありません。

[ -z $TMUX ] && export TERM=xterm-256color && exec tmux

関連情報