Issue
def pname = "
netstat -ntlp|grep 8080|awk '{printf \$7}'|cut -d/ -f2
"sh "echo $pname" \ java
if ("java".equals(pname)) { sh "echo 1111" }
The process corresponding to port 8080 is a java process, and the 2nd line print "java". But the body of the if statement just doesn't execute.
Solution
You seem to be not executing the command correctly. Please refer to the following sample. Please note the returnStdout: true
to return output of the command.
pipeline {
agent any
stages {
stage('Test') {
steps {
script {
def pname = sh(returnStdout: true, script: "netstat -ntlp|grep 8080|awk '{printf \$7}'|cut -d/ -f2").trim()
if (pname == "java") {
echo "echo 1111"
}
}
}
}
}
}
Answered By - ycr
Answer Checked By - Gilberto Lyons (JavaFixing Admin)