用户交互Shell脚本未在Jenkinsfile中运行

时间:2019-06-07 12:46:29

标签: jenkins jenkins-pipeline

我有一个用户交互式shell脚本,该脚本在Linux服务器上成功运行。但是当我尝试通过詹金斯运行它时,它不会运行。

我创建了一个Jenkinsfile。

Jenkinsfile

node('slaves')  {
      try
      {
    def app

stage('Remmove Docker service') {

        sh 'sshpass ssh docusr@10.26.13.12 "/path/to/shell/script"'

    }
}
}

Shell脚本

#!/bin/bash
read -p "Hi kindly enter the api name : " api
docker service logs $api --raw

shell Scipt在我的本地服务器上成功运行,当我尝试使用Jenkinsfile在Jenkins上运行时,它不接受用户交互的shell脚本中的$api变量。

1 个答案:

答案 0 :(得分:0)

如果我正确理解的话,那么你试图达到的目标并没有达到詹金斯自动化工作的目的。因此,您的工作实际上是在寻求用户输入,在这种情况下,最好拥有parameterized jenkins build。 对于您的情况,您仍然可以给sshpass命令$api赋一个参数,并使其从jenkins环境本身读取,或者更好地使您的jenkins build parameterized并使用用户输入$api作为参数。