Bash Jenkins文件添加if-else脚本?

Bash Jenkins文件添加if-else脚本?,bash,jenkins,groovy,jenkins-pipeline,Bash,Jenkins,Groovy,Jenkins Pipeline,我想将一个简单的if-else脚本集成到我的Jenkins文件中,但我有一个小问题: 我的Bash脚本: #!/bin/bash if [ -e /root/test/*.php ];then echo "Found file" else echo "Did not find file" fi 脚本工作得很好,但如果我尝试在一个阶段中集成,它们将无法正常工作: stage('Test') { steps { script {

我想将一个简单的if-else脚本集成到我的Jenkins文件中,但我有一个小问题:

我的Bash脚本:

#!/bin/bash
if [ -e /root/test/*.php ];then
echo "Found file"
else
echo "Did not find file"
fi
脚本工作得很好,但如果我尝试在一个阶段中集成,它们将无法正常工作:

        stage('Test') {
        steps {
            script {
                    if [ -e "/root/test/*.php" ];then
                        echo found
                    else 
                        echo not found
                }
            }
    }

管道的
脚本
步骤需要Groovy脚本,而不是Bash脚本-

您可以使用
script
step来代替
script。类似这样的内容(这只是一个示例):

阶段(“测试”){
台阶{
sh(returnStdout:true,脚本:'#!/bin/bash
如果[-e/root/test/*.php];那么
回显“找到文件”
其他的
echo“未找到文件”
fi
''.stripIndent())
}
}

这里有很多额外的花括号。它们可能是原因吗?
script{…}
需要Groovy脚本,而不是shell脚本。您可以在Groovy中重写它,或者使用
sh'.'
运行shell脚本。他们说有些东西与[-e@Biffen我如何集成shell脚本来代替groovy?或者您知道一个简单的脚本来搜索文件夹.php文件吗?@M.Antony询问您最喜欢的搜索引擎如何在groovy中查找文件。或者,如我所述,使用
sh'.'
(如果您想在多行上写,您可以使用其他类型的引号,例如,
''.'''
)。非常感谢,它很有效:)还有一个问题。stripIndent和returnStdout具体是什么?
returnStdout
是可选参数,如果您想捕获命令的输出,可以使用它。
indent()
是一种删除给定字符串中缩进的Groovy方法(如果没有它,则从第二行开始的所有行都会有几个空格的缩进)。