赞
踩
platform="arm x86"
if [[ "$platform" =~ "arm" ]]
then
echo "arm"
fi
最近在调试Jenkins
实现的一些功能,发现在本地可以运行的脚本内容到了Jenkins
里面就没办法运行了,不是提示unexpected operator
就是提示[[ : not found
,在搜索过资料后发现这两个问题都会指向脚本的启动方式,也就是区分sh
或者bash
。
❗bash与sh是有区别的,两者是不同的命令,且bash是sh的增强版,而"[[]]"是bash脚本中的命令,因此在执行时,使用sh命令会报错,将sh替换为bash命令即可。
所以需要将Jenkins
中shell
的启动命令改成bash
,操作方法如下:
Manage Jenkins
选项Configure System
部分,点击进入Configure System
界面后,找到名称为“Shell”或类似的字段(根据不同版本的Jenkins可能会有所不同)。❗若需要在特定的构建步骤中手动指定使用Bash,则可以在相关的构建步骤中添加"sh"命令,例如:sh script.sh。
❗如果系统没有安装Bash,那么首先需要在服务器上安装Bash才能使其生效。
Reference:
https://blog.csdn.net/lc250123/article/details/90747798
https://blog.csdn.net/Levon123/article/details/124882509
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。