Shell编程时出现"[: =: unary operator expected"解决

环境

RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9

 

问题

Shell编程时出现如下错误:[: =: unary operator expected

 

解决

 

#出现错误代码:
#第六行出现代码
values=(39 5 36 12 9 3 2 30 4 18 22 1 28 25)
    numvalues=${#values[@]}
    for (( i=0; i < numvalues; i++ )); do
        lowest=$i
        for (( j=i+1; j < numvalues; j++ )); do
            if [ ${values[j]} -le ${values[$lowest]} ]; then
                lowest=$j
            fi
        done
          [i]}
        values[i]=${values[lowest]}
        values[lowest]=$temp
    done
    for (( i=0; i < numvalues; i++ )); do
        echo -ne "${values[$i]}\t"
    done
echo -e "\n\n-------end---------\n"

#解决后代码:
#在出错的地方增加了一对方括号
values=(39 5 36 12 9 3 2 30 4 18 22 1 28 25)
    numvalues=${#values[@]}
    for (( i=0; i < numvalues; i++ )); do
        lowest=$i
        for (( j=i+1; j < numvalues; j++ )); do
            if [[ ${values[j]} -le ${values[$lowest]} ]];
         then
                lowest=$j
            fi
        done
        #[i]}
        values[i]=${values[lowest]}
        values[lowest]=$temp
    done
    for (( i=0; i < numvalues; i++ )); do
        echo -ne "${values[$i]}\t"
    done
echo -e "\n\n-------end---------\n"


 

参考资料

 

http://www.mossfly.com/unary-operator-expected-linux.html

 

http://blog.csdn.net/goodlixueyong/article/details/6564591

 


Shell编程时出现"[: =: unary operator expected"解决_第1张图片 Shell编程时出现"[: =: unary operator expected"解决_第2张图片 Shell编程时出现"[: =: unary operator expected"解决_第3张图片
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客]

你可能感兴趣的:(shell编程,unary)