ci配置踩坑记
warning:
这篇文章距离上次修改已过835天,其中的内容可能已经有所变动。
脚本如下:
报错信息:
分析
报错信息很简短,能看出来第一二行其实已经执行了第一行脚本了。最后出来一个未找到version
这个变量的提示,紧接着返回了127
的返回值
突然想起来,shell
里关于变量的定义貌似是不能在=
左右加空格???!!!
删掉空格,再来一次
果然可以了!
不过出现新的问题了
新的问题:11: Syntax error: "("
错误信息:
字面意义第一眼是语法错误,第十一行。
脚本:
第十一行这里是数组的定义,来看一下是不是数组语法写错了。
果不其然,shell
中关于数组的定义是:
用()
包裹,用空格进行分离
这里我用了 ,
!!!
修改完后运行,还是一样的错误!?
再次仔细看了一遍脚本,语法上并没有问题。询问万能的度娘后发现有人也遇到这个问题了,据说是因为默认的解释器导致的:
debian/ubuntu上sh命令默认是指向dash,而不是bash
Debian Almquist shell,缩写为dash,一种 Unix shell,相容于POSIX标准。 它比 Bash 小,只需要较少的磁盘空间,但是它的对话性功能也较少。 它由 NetBSD版本的Almquist shell (ash)发展而来, 于1997年,由赫伯特·许(Herbert Xu)移植到Linux上,于2002年改名为 dash。
————————————————
版权声明:本文为CSDN博主「win-victor」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43887596/article/details/99293505
脚本第一行加入以下代码,强制指定解释器:
这里过了。
又双叒叕出现问题了!? 果然我太菜了
新问题: line 20: syntax error: unexpected end of file
错误详情:
脚本:
这!!!20行都是空的啊,这脚本大概有点不对劲。
不管三七二十一,先删了空行试试。还是一样的问题,从度娘上发现是因为换行的问题,常出现在win系统中,可是。。。我是在web里编辑的啊??
显而易见,当然是行不通的
那尝试另一个方向:语法错误!
那么语法出现错误,就只剩下循环了,先把之前偷懒没有改的地方修复一下:
echo
本来是要输出变量的,但是忘了打$
,后来想着反正是测试的, 就没有管。
还是一样的问题,有点抓瞎了。
峰回路转
早上清醒了一下,重新看了下shell
的流程语句。发现if
的结尾是fi
,这时候回头看一下第二次报的错,其实已经提示我们了:
但是因为数组定义也有问题,因此干扰了判断(大实话就是没认真看信息:-1:)
评论已关闭