我正在尝试编写一个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 ] ]]'
我做错了什么?
答案 0 :(得分:0)
在&&
-a
而不是[[ ]]
此外,expr length
将无法满足您的期望。由于您已经在使用bash扩展,因此更好的方法是使用${#param}
扩展来获取$param
的长度,并在数学上下文中对其进行评估,如下所示:
if [[ -n ${array[$x1]} ]] && (( ${#x1} > 2 )); then
...
fi