shell脚本执行报错syntax error: unexpected end of file

求高手解决#!/bin/shif[$#-ne1]thenexit1fidir=$1PASODSPATH=$ODS_HOMEif[-z$PASODSPATH]thenPAS... 求高手解决
#!/bin/shif [ $# -ne 1 ] then exit 1fidir=$1PASODSPATH=$ODS_HOMEif [ -z $PASODSPATH ]then PASODSPATH="/home/dsadm/PASODS";ficd $PASODSPATHif [ -e $dir ] then exit 1fimkdir $dirchmod 777 $direxit 0

报错代码:mkdir.sh: line 20: syntax error: unexpected end of file
展开
 我来答
百度网友5311d79
2014-01-14 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3247万
展开全部

没有使用代码格式,不太方便看。

 

[ -z $PASODSPATH ]

字符串变量在使用时请养成加双引号的习惯 "$PASODSPATH",这样无论是字符串为空或是字符串中含有空格,都不会有任何问题。

改为:

if [ -z "$PASODSPATH" ]; then

或者:

if [ -z "$PASODSPATH" ]
then
dingonet
2014-01-14 · TA获得超过430个赞
知道小有建树答主
回答量:872
采纳率:66%
帮助的人:500万
展开全部
仔细看吧。应该是程序的结构不完整,还没有结束基本结构。比如if else endif 此类。对shell 不是很熟,只能提供意思思路了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5311d79
2014-11-19 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3247万
展开全部
每行后面都加 && 是什么意思啊?
两条命令放在一行执行,前一条执行成功才执行后一条,这种条件关系才用&&。

加一个 & 表示后台执行命令,加两个 & 我就不明白了。
而且,这里必须阻塞,在dos2unix完成前不能执行后面的命令,所以不能用后台执行的方式。
去掉 && 吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QICHUAN_ZHANG
2014-01-14 · TA获得超过199个赞
知道小有建树答主
回答量:1646
采纳率:0%
帮助的人:555万
展开全部
语法错误了, 需要调试一下的,发下私信过来吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式