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

代码如下
#! /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格式了,还是不行....

指出你的几个问题:
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比了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-04
请问楼主这个问题解决了吗~~~困扰我很久了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网