bash - shell 脚本中的错误:需要整数表达式
问题描述
我现在正在学习shell脚本。我开始学习如何使用更复杂的 if 语句。下面这段代码有什么问题?我在stackoverflow中阅读了其他类似的问题,但我无法解决我的问题。现在我正在验证第一个、第二个或第三个参数是否为空。将来我会假装基于一些正则表达式或类似的东西进行验证。
谢谢!!
代码(第 9 行):
if [ "$1" -eq "" ] || [ "$2" -eq "" ] || [ "$3" -eq "" ] then ...
第 9 行: [: : 预期的整数表达式
第 9 行: [: : 预期的整数表达式
第 9 行: [: : 预期的整数表达式
解决方案
-eq
执行两个数字之间的算术比较。用于=
字符串比较。或者更好的是,使用[[
and ==
。
[[ $1 == "" ]]
[ "$1" = "" ]
您还可以使用-z
and-n
直接测试一个值是否为空/非空。
[[ -n $value ]] # [[ $value != "" ]]
[[ -z $value ]] # [[ $value == "" ]]
推荐阅读
- excel - VBA:如何根据同一子中的前提条件循环从文件夹中选择文件?
- c# - 这些成员应该在模型中吗?如果是这样,如何?
- jenkins - 监控 openstack4j 的请求数量
- javascript - Peg.js 区分缺失值和空白
- python - 仅将 Python 嵌套字典的一些键插入列表
- c++ - 为什么同时覆盖全局 new 运算符和特定于类的运算符不是模棱两可的行为?
- teradata - teradata 中的正则表达式
- java - 将新列属性添加到 shapefile 并使用 Geotools Java 将其保存到数据库
- reactjs - Razorpay installation in react js
- delphi - Font.charset being changed to ANSI when loading files