您好任何人都可以帮助我用布尔形式编写表达式,现在我无法执行它。这里有stat_1和stat_2是两个空字符串
我尽力而为:
[ [ "$stat_1" -a "$stat_2" ] && [ $stat_1 -eq 5 -a $stat_2 -eq 0 ] ]
答案 0 :(得分:2)
我假设您要测试stat_1
等于5,stat_2
等于0.
这可以通过这种方式完成:
[ "$stat_1" = 5 ] && [ "$stat_2" = 0 ]
您可以使用-a
在单个括号中执行测试,但我发现它使用两组括号中的表达式更清晰,每个表达式都有一个测试。
最好将变量保留在引号内,否则如果它们包含空格(可以扩展到括号内的其他参数),则可能会产生不需要的结果。
如果您使用的是bash,则可以使用双括号条件:
[[ "$stat_1" = 5 ]] && [[ "$stat_2" = 0 ]]
这些工作做同样的工作,但是它们内置在shell中,并提供了一些额外的功能,特别是我经常使用的模式匹配=~
。