shell脚本错误问题

yesterday(){oset=`echo$TZ|tr-d'[A-Z+]`new_offset=`expr$oset+24`TZ=`echo$TZ|sed"s/[+-]... yesterday()
{
oset=`echo $TZ|tr -d '[A-Z+]`
new_offset=`expr $oset + 24`
TZ=`echo $TZ|sed "s/[+-]\{0,1\}[0-9][0-9]\{0,1\}/$new_oset/\
`date+%m\/%d\/20%y
}
clear
lastday=`yesterday`
echo "\n\n\n\n\n\n\n\t\t请输入日期(缺省为昨日mm/dd/yyyy):\c"
read days
days=${days:="$lastday"}
这个shell脚本为什么提示:
./yesterday: command substitution: line 1: unexpected EOF while looking for matching `''
./yesterday: command substitution: line 2: syntax error: unexpected end of file
expr: syntax error
./yesterday: command substitution: line 1: unexpected EOF while looking for matching `"'
./yesterday: command substitution: line 2: syntax error: unexpected end of file
哪里有错呢?谢谢!
展开
 我来答
百度网友5311d79
2010-10-19 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3200万
展开全部
错误提示中已经说了:
首先yesterday函数中 line 1 有问题

oset=`echo $TZ|tr -d '[A-Z+]`
少了一个匹配的单引号啊

这个错误同时也导致line2的错误

另外,楼上说了,脚本第五行(yesterday函数中的第三行)也缺少匹配的双引号。

建议使用 sh -n scripts.sh 来检查脚本是否有语法问题,
然后使用 sh -x scripts.sh 来显示所有语句的执行过程,
这样可以比较清楚地看出哪里出问题了。
喻逸2d
2010-10-12 · TA获得超过2399个赞
知道小有建树答主
回答量:534
采纳率:0%
帮助的人:245万
展开全部
首先你要理解这段脚本的作用,其次你可以将oset=`echo $TZ|tr -d `[A-Z+]`的改成oset=$(echo $TZ|tr -d "[A-Z+]")这样也可以执行并赋值,另外,第五行里都缺少结束的双引号,可以多试试!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式