程序不打印变量的值

程序不打印变量的值

所以这是我的代码

#! /bin/bash

echo -n "Please enter the first integer: "
read $num1
echo -n "Please enter the second integer: "
read $num2

if [[ "$num1" -eq "$num2" ]];
then
    echo "$num1  is -eq $num2"
fi

该程序的问题是它不打印$num1并且$num2语句后的值为 true

顺便问一下,有什么方法可以更好地处理整数输入和比较吗?

答案1

正如@Bodo所说,你的read陈述是错误的。

如果你有一个命令read $num1,那么 shell 会查找 num1 的值(假设它是“fred”),然后运行read fred以获取一行输入并将其存储在变量 fred 中。

如果(可能是这种情况)num1 没有当前值,则 shell 将运行read,并将该值存储在变量 中REPLY

一般来说你应该总是引用你的变量。如果您这样做并说过read "$num1",那么当 shell 将其转换为read ""空字符串不是变量的有效名称时,您将收到一条错误消息。

相关内容