bash と入力すると、結果として文字列が表示されるのはなぜif [ false ]; then echo 'ok'; fi;
ですかok
? 変数を使用した場合にも得られる同様の結果:ok=false; if [ $ok ]; then echo 'ok'; fi;
1146 次
2 に答える
10
if [ false ]
と同等ですif [ -n "false" ]
- 文字列の長さをテストしています。の終了コードをテストしようとしている場合は/bin/false
、if false
(no 。すべてではありませんが、多くの最新のシェルでは、または[
とほぼ同等のシェル ビルトインです) を使用します。/usr/bin/[
/usr/bin/test
于 2012-11-08T17:31:33.943 に答える
3
true
またfalse
、他のプログラミング言語の場合と同じように、bash の boolean の組み込みキーワードではありません
次のように、変数の true / false 条件のテストをシミュレートできます。
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 ]
暗黙的に変換されます
if [ -n "false" ]
は、-n
「これの長さが 0 より大きいかどうかをテストします。そうであれば論理的に true、それ以外の場合は論理的に false」を示します。
脇に -true
実際false
に何かをしますが、それらはコマンドです:
man true
man false
それらについてもっと読むために。
于 2012-11-08T17:34:57.230 に答える