我正在尝试在jenkins管道中的docker容器内运行bash文件。这是我的bash文件,它比较两个数组并在它们不同的情况下打印出一些东西:
// path/to/file/my-bash.sh
#!/bin/bash
array1="some array"
array2="some array"
result=$(echo ${array1[@]} ${array2[@]} | tr ' ' '\n' | sort | uniq -u)
[ ! -z "$result" ] && echo "different arrays"
这是詹金斯流水线阶段:
stage('Running the bash file') {
sh """#!/bin/bash -l
docker-compose -f docker-compose.yml -p "${env.BUILD_TAG}" exec -T --user it php bash -l -c "cd /path/to/file && ./my-bash.sh" > result.txt
"""
}
这行result=$(echo ${array1[@]} ${array2[@]} | tr ' ' '\n' | sort | uniq -u)
可能会引起问题,因为如果没有它,一切都会很好。但是我不知道问题出在哪里。