在jenkins中使用shell脚本报错[[: not found引出来的问题
问题现象在本地验证是ok的,但是在jenkins上执行为什么会报错?问题出在jenkins默认使用的不是/bin/bash,而是/bin/sh问题原因/bin/sh不支持[[这样的扩展,这就解释了本地调试可以成功,jenkins缺失败了。扩展上面还可以看到jenkins在执行shell脚本时还加上了-xe参数-x:打印每一行执行到的命令-e:当任何命令以非零值(当任何命令失败时)退出代码时,终止执
·
问题现象
在本地验证是ok的,但是在jenkins上执行为什么会报错?
问题出在jenkins默认使用的不是/bin/bash
,而是/bin/sh
问题原因
/bin/sh不支持[[这样的扩展,这就解释了本地调试可以成功,jenkins缺失败了。
扩展
上面还可以看到jenkins在执行shell脚本时还加上了
-xe
参数
- -x:打印每一行执行到的命令
- -e:当任何命令以非零值(当任何命令失败时)退出代码时,终止执行shell脚本
可以灵活运用-e参数在jenkins shell中达到想要的效果
手动设置jenkins执行shell时的解释器为bash
上面将-e
参数移到cat $productList | grep $IP
之后就可以使得jenkins运行到cat这一行时不会退出,而在-e
后面的命令执行会在命令执行失败时退出,达到了jenkins构建想要的效果
更多推荐
已为社区贡献20条内容
所有评论(0)