Issue
script{
println("Starting TEST")
//Declaring Variable var value in the Below Shell Block
sh"""
echo "This is Test"
var=10
echo "This is Test Value \$var"
"""
//Trying to Print the var Value from above Block
sh"""
echo "This is Other Block"
echo "This is Test Value \$var"
"""
//Copying the value from Shell Script Variable to Groovy Script
def scriptVar=sh(script:"\$var ")
}
In the above code Im trying to print the value of a shell block and use the same value to assign the value in next block but echo will just show blank message after printing value in 2nd block
Solution
You can simply write the value to a file and then read it from there. Check the following.
script{
println("Starting TEST")
//Declaring Variable var value in the Below Shell Block
sh"""
echo "This is Test"
var=10
echo \$var > varOut
echo "This is Test Value \$var"
"""
//Trying to Print the var Value from above Block
sh"""
echo "This is Other Block"
var=\$(cat varOut)
echo "This is Test Value \$var"
"""
// Assign the value to a variable
def var = readFile(file: "varOut")
echo "Var = $var"
}
Answered By - ycr
Answer Checked By - Pedro (JavaFixing Volunteer)