shell报错:

发布时间:2024-11-12 02:00

shell报错:-bash: [: ==: 期待一元表达式 解决方法

对shell脚本有不理解的可以查看https://blog.csdn.net/wulimingde/category_10285021.html

问题脚本:

1

2 PRICE=$(expr $RANDOM % 1000)

3 TIMES=0

4 echo "商品的实际价格范围0~999,猜猜看是多少?"

5 while true

6 do

7 read -p "请输入你猜测的价格数目:" INT

8 let TIMES++

9 if [ $INT -eq $PRICE ]

10 then

11 echo "恭喜你答对了,实际价格是 $PRICE"

12 echo "你总共猜测了 $TIMES 次"

13 exit 0

14 elif [ $INT -gt $PRICE ]

15 then

16 echo "太高了!"

17 else

问题报错:

./caizhi.sh: 第 9 行:[: -eq: 期待一元表达式
./caizhi.sh: 第 14 行:[: -gt: 期待一元表达式

解决方法:

1. 当 if 语句中使用 [ ] 条件修饰符时, $TNT 变量必须加上引号。

2. 当 if 语句中使用 [[ ]] 条件修饰符时,$TNT 变量的引号可有可无。

正确脚本:

1

2 PRICE=$(expr $RANDOM % 1000)

3 TIMES=0

4 echo "商品的实际价格范围0~999,猜猜看是多少?"

5 while true

6 do

7 read -p "请输入你猜测的价格数目:" INT

8 let TIMES++

9 if [ "$INT" -eq "$PRICE" ] //在这一行将变量的双引号加上或者改为双中括号

10 then

11 echo "恭喜你答对了,实际价格是 $PRICE"

12 echo "你总共猜测了 $TIMES 次"

13 exit 0

14 elif [ "$INT" -gt "$PRICE" ] //这这一行将变量的双引号加上或者改为双中括号

15 then

16 echo "太高了!"

17 else

脚本执行情况:

[root@localhost opt]

商品的实际价格范围0~999,猜猜看是多少?

请输入你猜测的价格数目:456

太高了!

请输入你猜测的价格数目:345

太高了!

请输入你猜测的价格数目:101

太低了!

请输入你猜测的价格数目:102

恭喜你答对了,实际价格是 102

你总共猜测了 4 次

网址:shell报错: https://www.yuejiaxmz.com/news/view/43339

相关内容

shell整理(28)===找规律写shell
shell 脚本学习之一
appium===报错adb server version (31) doesn’t match this client (39); killing…的解决办法
unable to access jarfile
启动系统服务clickhouse报错clickhouse
【Ruby报错已解决】NoMethodError: undefined method `each‘ for nil:NilClass
【Java报错已解决】Driver class ‘net.sourceforge.jtds.jdbc.Driver’ could not be found, make sure the
厨房用品
'>=' not supported between instances of 'str' and 'int' 利用PCA报错解决
Python机器学习数据挖掘工具sklearn安装和使用

随便看看