然后k shell脚本没有预期的错误

时间:2013-03-21 07:25:52

标签: shell unix ksh

我写了一个简单的k shell程序,但是我看到了以下错误 “0403-057第11行的语法错误:'然后'不是预期的。”

代码是

 #!/usr/bin/ksh
    function check_rm 
   {
  number=$#    #assign number of parameters
if [[ $1 -gt 0 ]]; #if RC is success
    then 


        if[[ "$number" -gt 2 ]];  
        then         

        /usr/bin/mv  $4  $3
        echo " ERROR for $2 " 
    fi


    #user_name=`whoami`
    #mail_body="$3 checked in by $user_name" 
    #echo $mail_body 

else 


        if[[ "$number" -gt 2 ]];  
            then 

            /usr/bin/rm -rf $4
        fi      
        echo "GOOD for $2  "   
        echo "3f was successful"
fi                  

}

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

正如Wrikken在评论中指出的那样,问题是if[[之间该行缺少的空间; ksh需要这个来告诉两者是分开的。后面的脚本也有同样的问题;你需要修复两次事件。

答案 1 :(得分:0)

您可以删除“;”在你的if条件之后。 if条件的语法非常严格,我更正了你的代码:

     #!/usr/bin/ksh

    function check_rm 
    {
        #assign number of parameters
        number=$#    
        #if RC is success
        if [[ $1 -gt 0 ]] 
        then 
            if [[ ${number} -gt 2 ]]
            then         
                /usr/bin/mv  $4  $3
                echo " ERROR for $2 " 
            fi


            #user_name=`whoami`
            #mail_body="$3 checked in by $user_name" 
            #echo $mail_body 

        else 
            if [[ ${number} -gt 2 ]]
            then 
                /usr/bin/rm -rf $4
            fi      
            echo "GOOD for $2  "   
            echo "3f was successful"
        fi                  

    }