脚本无法获取“无效标识符”

时间:2014-11-10 21:10:17

标签: linux bash shell

我正在为一堂课做这件事,但我遇到了问题。我是Linux新手,真的很难过。我正在尝试输入3个值(M,R,T),弄清楚它们是否大于,小于或等于2000并打印一个语句。不确定我做得对。我得到了问题并且可以输入,但我不确定它是否完全正常工作。

#!/bin/sh
    clear
echo -n "What is the value of M?"
read $M
sleep 3
echo -n "What is the value of R?"
read $R
echo -n "What is the value of T?"
read $T
A=$M+$R+$T
if [ $A > "2000" ]
then
        echo "A is over 2000"
else
        echo "A is 2000 or less"
fi

1 个答案:

答案 0 :(得分:1)

这里有一些问题。首先,read采用不带$的变量的名称。其次,您可以在同一行上指定提示,因此不需要所有单独的echo。第三,为了进行数值比较,您应该使用-gt

#!/bin/sh
clear
read -p "What is the value of M?" M
sleep 3
read -p "What is the value of R?" R
read -p "What is the value of T?" T
A=$((M+R+T)) # different syntax here too
if [ "$A" -gt 2000 ]
then
    echo "A is over 2000"
else
    echo "A is 2000 or less"
fi

如果你正在使用bash,另一种比较bash中整数的方法是使用算术上下文:

if (( A > 2000 ))

如果您想使用bash功能,请记得将shebang更改为#!/bin/bash