外壳脚本中的 if 语句出错



我正在尝试编写一个shell脚本,但它在以下命令中给了我一个语法错误:

if [[ -n ${array[$x1]}  -a [ expr length "$x1" -gt 2 ] ]]

这是错误消息:

./project: line 45: syntax error in conditional expression
./project: line 45: syntax error near `-a'
./project: line 45: `   if [[ -n ${array[$x1]}  -a [ expr length "$x1" -gt 2 ] ]]'

我做错了什么?

[[ ]]中使用&&-a

此外,expr length不会在这里做你所期望的。更好的方法是,因为你已经在使用 bash 扩展,是使用 ${#param} 展开来获取$param的长度,并在数学上下文中对其进行评估,如下所示:

if [[ -n ${array[$x1]} ]] && (( ${#x1} > 2 )); then
  ...
fi

相关内容

  • 没有找到相关文章

最新更新