2012-11-08 21 views

答えて

10

は、文字列の長さをテストしていますif [ -n "false" ]と同等です。 /bin/falseの終了コードをテストする場合は、if false[はありません。現代のシェルの多くは、すべてではありませんが、/usr/bin/[または/usr/bin/testにほぼ相当するシェルです)。

+0

これは他の答えよりも優れていますが、 '['は外部バイナリではなく、組み込みコマンドになります。 – jordanm

+0

@jordanmいくつかのシェルでは真ですが、すべてではありません... OPには ''が内部である 'bash'というタグが付いていましたが...回答を少しでも明確にしました。 – twalberg

3

truefalseは、次のように、変数の真/偽条件のテストをシミュレートすることができますbashで、彼らは他のプログラミング言語のための

あるのと同じ方法ブールのための組み込みのキーワードではありません。

cond1="true" 
cond2="false" 

if [ "$cond1" = "true" ]; then 
    echo "First condition is true" 
fi 

if [ "$cond2" = "false" ]; then 
    echo "Second condition is false" 
fi 

あなたがやっているとき:

if [ false ] 

をそれは暗黙的に

に変換します -nを表し
if [ -n "false" ] 

「テストこれは、0よりも大きい長さを持っている場合:そうであれば、論理的に真、論理的にそうでない場合はfalse」

さておき - truefalseが実際に何かを行うが、彼らはコマンドです:

man true 
man false 

詳細については、こちらをご覧ください。

関連する問題