在unix脚本中编写布尔表达式

时间:2017-01-16 10:51:54

标签: bash shell unix sh

您好任何人都可以帮助我用布尔形式编写表达式,现在我无法执行它。这里有stat_1和stat_2是两个空字符串

我尽力而为:

[ [ "$stat_1" -a "$stat_2" ] &&  [ $stat_1 -eq 5 -a $stat_2 -eq 0 ] ]

1 个答案:

答案 0 :(得分:2)

我假设您要测试stat_1等于5,stat_2等于0.

这可以通过这种方式完成:

[ "$stat_1" = 5 ] && [ "$stat_2" = 0 ]

您可以使用-a在单个括号中执行测试,但我发现它使用两组括号中的表达式更清晰,每个表达式都有一个测试。

最好将变量保留在引号内,否则如果它们包含空格(可以扩展到括号​​内的其他参数),则可能会产生不需要的结果。

如果您使用的是bash,则可以使用双括号条件:

[[ "$stat_1" = 5 ]] && [[ "$stat_2" = 0 ]]

这些工作做同样的工作,但是它们内置在shell中,并提供了一些额外的功能,特别是我经常使用的模式匹配=~