在我的Jenkinsfile Groovy脚本中,我有以下代码;
stage('Test the 500 log URLs') {
steps {
script {
echo 'Testing the URLs from the 500 error access log...'
sh '''#!/bin/bash
while IFS= read -r line; do
URL=`echo $line | awk '{print $2}' | sed 's/http:/https:/' `
RESULT=`curl -LI $URL -o /dev/null -w "%{http_code}\n" -s | tr -d '[:space:]' `
if [[ $RESULT != "200" ]]
then
echo "$RESULT $URL"
fi
done < tests/Smoke/logs_testing/500errors.txt
'''
}
}
}
文件的第一部分正常工作,包括命令;
URL=`echo $line | awk '{print $2}' | sed 's/http:/https:/' `
但是,下面一行;
RESULT=`curl -LI $URL -o /dev/null -w "%{http_code}\n" -s | tr -d '[:space:]' `
当我运行Jenkins版本时失败。
产生以下错误;
line 4: curl: command not found
我看不到上一行为什么运行正常,但是这一行失败了。
我明显缺少什么吗?
任何帮助将不胜感激。
谢谢
答案 0 :(得分:1)
curl
可能没有安装在/usr/bin/
这样的公共位置。我建议您尝试通过其完整路径运行curl。
$ which curl
/usr/somelocation/curl # <- just an example
然后在您的脚本中:
RESULT=`/usr/somelocation/curl -LI $URL...`
另一种选择是编辑/etc/profile
并附加到PATH
所在的curl
上。
export PATH=$PATH:/usr/somelocation/
答案 1 :(得分:0)
非常感谢您的回复。您说对了,没有安装curl!通过它的完整路径运行curl,然后修改我的脚本现在已经解决了该问题。谢谢! :)