2012-10-11 103 views
0

使用bash,你可以做一個簡單的變量測試這樣簡單變量測試

$ [ $foo ]; echo $? 
1 

$ foo=bar 

$ [ $foo ]; echo $? 
0 

當且僅當該參數不爲null表達式爲true。

什麼是與C類似的測試?

編輯

比方說一個int類型參數的緣故。

回答

1

一般來說,在C.隱含布爾轉換所以以下所有的將打印「壞」:

int a = 0; 
if (a) {     // if a is nonzero. 
    printf("good"); 
} 
else { 
    printf("bad"); 
} 

char* str = NULL; 
if (str) {     // if str is nonzero. (NULL is zero). 
    printf("good"); 
} 
else { 
    printf("bad"); 
} 
+1

注意,空,分配的字符串被認爲是真實的,並且對'strlen的另一張支票( )'(或'* str')將是必需的。 –

+0

非常好的一點。我絕對錯過了與shell腳本相比這是一個自然擴展的情況。 –