【发布时间】:2019-04-05 17:39:40
【问题描述】:
我有一个带有以下参数变量的 Jenkins 工作。
source_host(字符串参数)dest_user(选择参数)备份(复选框参数)
我将 Jenkins 参数传递给 Jenkins Execute Shell,如下所示:
$ANSIBLE_SCRIPT_HOME/transfer.sh -a $source_host -b $dest_user -c $backup
下面是 transfer.sh 脚本。
while getopts ":a:b:c:" opt; do
case $opt in
a) source_host="$OPTARG"
;;
b) dest_user="$OPTARG"
;;
c) isbkup="$OPTARG"
;;
\?) echo "Invalid option -$OPTARG" >&2
;;
esac
done
printf "Argument source_host is %s\n" "$source_host"
printf "Argument dest_user is %s\n" "$dest_user"
printf "Argument backup is %s\n" "$backup"
Jenkins 版本:Jenkins 2.138.1 核心和库
Jenkins 2.145 及更早版本中存在多个安全漏洞,以及 LTS 2.138.1 及更早版本
如果我不选择 dest_user(选择参数),即空白并调用执行 shell,则 transfer.sh 的输出显示 $dest_user 的输入不正确
参数 source_host 是 user1
参数 dest_user 是 -c
参数备份是否
我希望 dest_user 在输出中不打印任何内容,而不是 -c。
【问题讨论】:
标签: shell unix jenkins arguments parameter-passing