2014-02-26 82 views
0

我含蓄地分配一個布爾值變量在具有布爾值

x=false 

變量測試沒有條件,我可以做到這一點

$x || echo "the value is set to true" 

但反向測試不僅是短甜美

{ ! $x || echo "the value is set to false " ; } 
在伯恩(KSH)

它計算像

! false 

,結果是不一樣的

因此,人們可以使用測試值的奧普條件(! )

[ "$x" = "true" ] 

這是唯一的短期辦法扭轉測試一個布爾值,或有更好的辦法可以說

+0

'{! $ x ||回聲「該值設置爲true」; }'在BASH中工作正常/ ksh – anubhava

+0

Anubhava。歡迎回來,再次感謝'。那麼,我確切地說是我過去使用過的東西,但它並沒有給出可預測的結果,尤其是你正在'喚醒'它的條件,所以我改爲真 – user1874594

+0

製作'x = true',然後在上面調用以查看它是否打印。 '! $ x ||'表示2個否定。 – anubhava

回答

0

我不知道我理解你的問題。你想打印的東西根據$ x是真的還是假的?如果是這樣,我認爲下面應該工作:

$x && echo "the value is true" || echo "the value is set to false " ; 
+0

Thx.I想測試布爾邏輯的opp! $ x && echo「msg」' – user1874594

0
if ! $x 
then 
    YourThenCode 
else 
    YourElseCode 
fi 

樣品

$ x=true;if ! $x ; then echo "True if"; else echo "false if" ;fi 
false if 
$ x=false;if ! $x ; then echo "True if"; else echo "false if" ;fi 
True if