无法获得if-else循环的正确输出

时间:2013-07-01 08:12:56

标签: shell putty

当我使用多个if-else时,我仍然会收到一些语法错误。请帮忙

stats=$(rpm -qa | grep MySQL)
set -f  # turn off globbing, so as not to expand wildcards
arr=($(echo "$stats" | sed 's/,/ /g'))
if [[ "${arr[0]}" == "MySQL-server-5.6.11-2.rhel5" ]] && [[ "${arr[1]}" == "MySQL-client-5.6.5_m8-1.rhel5" ]]; then
        rpm -e MySQL-server-5.6.11-2.rhel5
        rpm -e MySQL-client-5.6.5_m8-1.rhel5
        echo "MySQL Successfully Removed";
elif [ "${arr[0]}" == "MySQL-server-5.6.11-2.rhel5" ]; then
         rpm -e MySQL-server-5.6.11-2.rhel5

elif [ "${arr[1]}" == "MySQL-client-5.6.5_m8-1.rhel5" ]; then
         rpm -e "MySQL-client-5.6.5_m8-1.rhel5
else
        echo "Done"

fi

1 个答案:

答案 0 :(得分:0)

您需要在第二个条件中添加空格:

[["${arr[1]}" == "MySQL-client-5.6.5_m8-1.rhel5"]]
  ^                                            ^
   \                                          /
    - here                              here -

所以它是

[[ "${arr[1]}" == "MySQL-client-5.6.5_m8-1.rhel5" ]]