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脚本相比这是一个自然扩展的情况。 –