bash在if条件内分配变量

时间:2019-11-25 20:08:21

标签: bash

在C语言中,可以在if条件内分配变量,如下所示:

if ( (age = now - mdate) > 7 ) {
    # use variable `age`
}

可以在bash中执行此操作吗?

2 个答案:

答案 0 :(得分:2)

有可能,但与if语句无关。

在算术语句中,您可以分配给变量。

now=10
mdate=1
if (( (age=now - mdate) > 7 )); then
    echo "$age"
fi

在这里,(( ... ))是一条命令,其内容被视为算术表达式。它与if语句的语法无关,例如

(( age=10 ))
(( wait = 16 - age ))
echo "$wait years until you can drive"

特定于bash,您可以将条件分成多个命令:

# This works in any POSIX-compliant shell
if age=$((now - date)); [ "$age" -gt 7 ]; then
    echo "$age"
fi

答案 1 :(得分:1)

您可以使用(( .. ))

if (( (age = now - mdate) > 7 )); then
   echo "more than 7"
fi
相关问题