如果bash中满足多个条件,则输入if语句

时间:2018-08-07 14:47:34

标签: bash shell

仅在满足以下条件时,我才尝试输入if / then语句:

if [ "$key1dtSec" -lt "$taSec" ] || [ "$key2dtSec" -lt "$taSec" ] && [[ ! -z "$user_lives_here" ]]; then

仅当$key1dtSec$key2dtsec为真,且仅当$user_lives_here有值时,我才想进入循环。

但是,即使if有值,then / $user_lives_here语句也会被执行。我不想要那个。

如何确保if / then仅在$user_lives_here有值的情况下发生?

2 个答案:

答案 0 :(得分:3)

您可以在[[ / ]]运算符中用括号将条件分组:

if [[ ! -z "$user_lives_here" && ( "$key1dtSec" -lt "$taSec" || "$key2dtSec" -lt "$taSec" ) ]]

答案 1 :(得分:2)

您需要将“或||”条件括在括号中:

if  ( [ "$key1dtSec" -lt "$taSec" ] || [ "$key2dtSec" -lt "$taSec" ] ) && [[ ! -z "$user_lives_here" ]]; then