新手求助:SHELL编程提示“语法错误,期待操作数”

sh/bash/dash/ksh/zsh等Shell脚本
回复
googlenik
帖子: 2
注册时间: 2011-10-17 1:13

新手求助:SHELL编程提示“语法错误,期待操作数”

#1

帖子 googlenik » 2011-10-17 1:21

各位大大,我刚开始做第一个SHELL编程实验,课本提供了源代码但是貌似有错误,请帮忙看一下,谢谢
题目叫做时间密码的验证,源代码如下:
#!/bin/bash
#Program:
#User can test the timepassword.timepassword
#History:
#2010/4/30 First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
Date='date+%Y%m%d%H%M'
Time=$(($(($Date/100*100))+$(($(($Date%100+15))%60))))
read -p "Please input the password: " password
while["$password"!="$Time"]&&["$password"!="q"]
do
read -p "Failed,please try again and you can input 'q'to stop this test: "
password
done
if["$password"=="$Time"];then
echo "Success!"
exit 0
fi
但是在运行的时候在第9行会卡住,提示bash: date+%Y%m%d%H%M/100*100: 语法错误: 期待操作数 (错误符号是 "%Y%m%d%H%M/100*100")
折腾了好久没有解决,请问是哪里有错误呢?
还有这句:Time=$(($(($Date/100*100))+$(($(($Date%100+15))%60))))那个Date先乘100再除100不是没有意义么?求解

新的问题
谢谢大家,第一个DATE的问题解决了,现在我执行到done那里又会出错,之前提示输入密码的时候我输入了当前时间,现在运行到done提示
“[201110171217!=201110171231]:找不到命令”,请帮忙再看下,谢谢!
上次由 googlenik 在 2011-10-17 12:21,总共编辑 1 次。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 新手求助:SHELL编程提示“语法错误,期待操作数”

#2

帖子 枫叶饭团 » 2011-10-17 8:06

手机党压力很大,不过Date是date加....? 是不是要加上expr运算,分号换成反引号 $date
昨夜袜子
帖子: 5
注册时间: 2009-08-30 21:42

Re: 新手求助:SHELL编程提示“语法错误,期待操作数”

#3

帖子 昨夜袜子 » 2011-10-17 10:16

Date='date+%Y%m%d%H%M'这里
应该不是引号是1左边的那个和~一起的。
昨夜袜子
帖子: 5
注册时间: 2009-08-30 21:42

Re: 新手求助:SHELL编程提示“语法错误,期待操作数”

#4

帖子 昨夜袜子 » 2011-10-17 10:19

还有date+%Y%m%d%H%M date和+中间有空格。
while[],if[]这里也有空格。仔细对对书。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 新手求助:SHELL编程提示“语法错误,期待操作数”

#5

帖子 lilydjwg » 2011-10-17 12:48

googlenik 写了: 新的问题
谢谢大家,第一个DATE的问题解决了,现在我执行到done那里又会出错,之前提示输入密码的时候我输入了当前时间,现在运行到done提示
“[201110171217!=201110171231]:找不到命令”,请帮忙再看下,谢谢!
空格!!!
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 新手求助:SHELL编程提示“语法错误,期待操作数”

#6

帖子 tusooa » 2011-10-23 11:34

Date='date+%Y%m%d%H%M'
这一行估计应该是
Date=`date +%Y%m%d%H%M`

代码: 全选

] ls -ld //
回复