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