jenkins传递参数给shell

 

jenkins传递参数给shell

 

查看jenkins参数

http://jenkins服务器/env-vars.html/

 

jenkins上配置

image

export BUILD=${BUILD_NUMBER}
sh +x /opt/script/remotestop.sh

 

这里用sh 不要用sudo

export只是将参数传递给当前用户

 

———故障排除1

------中间广告---------

使用key 会进入 api-001 ~]$ 模式

这样执行脚本,部份命令会没权限。所以需要进脚本进行对应修改

对需要权限的命令 前面加sudo

 

但是这样,sudo 后 传的参数又没用了,因为使用sudo 会重置当前变量

解决

解决

1、sudo -E

-E选项在man page中的解释是:

-E

The -E (preserve environment) option indicates to the security policy that the user wishes to preserve their existing environment variables. The security policy may return an error if the -E option is specified and the user does not have permission to preserve the environment.

简单来说,就是加上-E选项后,用户可以在sudo执行时保留当前用户已存在的环境变量,不会被sudo重置,另外,如果用户对于指定的环境变量没有权限,则会报错。

$ sudo -E bash test.sh       # 加上-E参数后就可以获取到变量

Aaa

发表评论