bash - Bash,将字符串读入变量会导致将命令读入变量并在逻辑上使用

我有一个包含数字的文件。我想将这个数字读入一个变量,然后在 if statement 中使用它。我正在使用以下命令来填充变量:

step='cat ./update_step'

文件 update_step 中存储了一个数字。数字可以是 0、1、2、3、4 或 5。为了本示例,文件包含数字“0”。

如果我这样检查变量:

$step

然后我得到“0”作为回报;这是预期的。

但是,如果我尝试在 if statement 中使用 $step ,例如:

if [ $step -eq 0 ]
then
    echo "this is an integer"
fi

我得到一个“参数太多”的错误。

如果我用 echo 检查变量:

echo "$step"

然后变量返回“cat ./update_step”

如何读取存储在 update_step 中的整数作为整数(老实说,此时它甚至可能是一个字符串),以便我可以将它与 if statement 一起使用?

回答1

尝试

step=$(cat ./update_step)

echo $step