shell语句出现syntax error near unexpected token `;;'错误

代码如下#!/bin/bashecho"1:上班签到"echo"2:下班签出"echo"3:缺勤信息查询"echo"请输入命令编号:(1,2,3)"readanswere... 代码如下
#! /bin/bash
echo "1:上班签到"
echo "2:下班签出"
echo "3:缺勤信息查询"
echo "请输入命令编号:(1,2,3)"
read answer
echo "请输入您的用户名"
read name
echo "请输入您的密码"
read password
if [ ! -f "/userinfo.dat" ]; then
touch userinfo.dat
fi
if [ ! -f "/check.dat" ]; then
touch check.dat
fi
d=$(date +%H%M)
cat > tmp.dat << EOF
$name"-" $password "登录系统" $d
EOF
cat -n tmp.dat >> userinfo.dat
rm tmp.dat
case “$answer” in
1)if( $d –gt 0800 )
echo "您已迟到"
da=$(date +%Y%H%M)
cat > tmp.dat << EOF
$name"于" $ da"迟到"
EOF
cat -n tmp.dat >> check.dat
rm tmp.dat
;;
2)if( $d –lt 1800 )
echo "您已选择早退"
da=$(date +%Y%H%M)
cat > tmp.dat << EOF
$name"于" $ da"早退"
EOF
cat -n tmp.dat >> check.dat
rm tmp.dat
;;
3)cat check.dat
;;
esac

PS:代码已经用notepad++转为unix格式了,还是不行....
展开
 我来答
白卡PALA
2015-05-25 · 知道合伙人软件行家
白卡PALA
知道合伙人软件行家
采纳数:648 获赞数:3420
性能测试4年工作经验。

向TA提问 私信TA
展开全部
指出衫仿你的几个问题:
1,cat > tmp.dat << EOF
$name"于" $ da"迟到"
EOF

这里$ da是不是多了个空格搭渣

2,if语句正确的写法是或枝纤
if 条件
then
执行
done

3,if( $d –lt 1800 )

应该写成 if [ "$d" -lt "1800" ],注意都有空格
追答
if
then
fi
这样才对,2比了。
jilinmly
2018-04-04 · TA获得超过295个赞
知道小有建树答主
回答量:386
采纳率:0%
帮助的人:139万
展开全部
请问楼主这个问题解决了吗~~~困扰我很久了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式