shell脚本中的if语句出错

时间:2014-01-15 19:57:23

标签: bash shell

我正在尝试编写一个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 ] ]]'

我做错了什么?

1 个答案:

答案 0 :(得分:0)

&&

中使用-a而不是[[ ]]

此外,expr length将无法满足您的期望。由于您已经在使用bash扩展,因此更好的方法是使用${#param}扩展来获取$param的长度,并在数学上下文中对其进行评估,如下所示:

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