我写了一个简单的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
}
有人可以帮忙吗?
答案 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
}