首页 > 解决方案 > shell 脚本中的错误:需要整数表达式

问题描述

我现在正在学习shell脚本。我开始学习如何使用更复杂的 if 语句。下面这段代码有什么问题?我在stackoverflow中阅读了其他类似的问题,但我无法解决我的问题。现在我正在验证第一个、第二个或第三个参数是否为空。将来我会假装基于一些正则表达式或类似的东西进行验证。
谢谢!!

代码(第 9 行):

if [ "$1" -eq "" ] || [ "$2" -eq "" ] || [ "$3" -eq "" ] then ...

第 9 行: [: : 预期的整数表达式
第 9 行: [: : 预期的整数表达式
第 9 行: [: : 预期的整数表达式

标签: bashshell

解决方案


-eq执行两个数字之间的算术比较。用于=字符串比较。或者更好的是,使用[[and ==

[[ $1 == "" ]]
[ "$1" = "" ]

您还可以使用-zand-n直接测试一个值是否为空/非空。

[[ -n $value ]]    # [[ $value != "" ]]
[[ -z $value ]]    # [[ $value == "" ]]

推荐阅读