0
使用bash,你可以做一個簡單的變量測試這樣簡單變量測試
$ [ $foo ]; echo $?
1
$ foo=bar
$ [ $foo ]; echo $?
0
當且僅當該參數不爲null表達式爲true。
什麼是與C類似的測試?
編輯
比方說一個int
類型參數的緣故。
使用bash,你可以做一個簡單的變量測試這樣簡單變量測試
$ [ $foo ]; echo $?
1
$ foo=bar
$ [ $foo ]; echo $?
0
當且僅當該參數不爲null表達式爲true。
什麼是與C類似的測試?
比方說一個int
類型參數的緣故。
一般來說,在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");
}
注意,空,分配的字符串被認爲是真實的,並且對'strlen的另一張支票( )'(或'* str')將是必需的。 –
非常好的一點。我絕對錯過了與shell腳本相比這是一個自然擴展的情況。 –