在Jenkinsfile中编写我的bash脚本代码时,我面临一些挑战。
UserCase:我在一个GIT存储库的文件夹结构中保留了多个工具代码。我希望每当开发人员对单个文件夹进行更改时,都会触发针对特定文件夹相关代码的构建。
我的逻辑:选择最后两个提交,找到区别。根据差异,根据更改的文件进行构建。
我写了bash脚本,它在linux机器上运行良好。将其移入Jenkinsfile内部后,我遇到了一些错误。
这可能是特定于常规的。
需要这些帮助
#!/bin/bash
git log -2 --no-merges | grep commit > git_commit.txt
cat git_commit.txt
echo 'hi'
i=0;
while read -r line;
do
commit[$i]=`echo "$line" | awk '{print \$2}'`
i=$((i+1))
done < git_commit.txt
这不是完整的代码。分配值时出现错误:
commit[$i]=`echo "$line" | awk '{print \$2}'`
如果您知道进一步的帮助说明,请告诉我。
答案 0 :(得分:0)
我刚抓到它。在bash中分配var是一个愚蠢的错误。我在分配awk命令的输出中添加了eval。所以我的代码更改是:
eval commit[$i]=`echo "$line" | awk '{print \$2}'`
不确定评估对我有多大帮助,但现在已解决。