Debian 11 で bash スクリプトを実行しており、正常に動作しました。 Ubuntu Server(おそらく22.04)に移動する必要がありましたが、今は動作が停止しました。私のスクリプトは次のとおりです。
BRANCHES=("master" "develop")
for BRANCH in "${BRANCHES[*]}"
do
echo Building $BRANCH
git checkout "$BRANCH"
#Code doing tasks
done
また、「${BRANCHES[@]}」を試しましたが、
結果が出ました。
Building ("master" "develop")
error: pathspec '("master" "develop")' did not match any file(s) known to git
Debian ではうまく動作しますが、Ubuntu では動作しない理由を理解できません。私の考えではbashでは実行されないようです(しかし#!/bin/bash +x
スクリプトの上にはあります)。 AFAIK Jenkinsシェルを実行してこのスクリプトを実行しており、サーバーへのSSHアクセス権がないため、簡単に確認できません。
ベストアンサー1
この問題は、EnvInjectプラグインがビルドするブランチを正しく設定しないために発生します。配列宣言を文字列に分割し、その文字列を環境変数に追加する単純なPythonスクリプトを書くことで問題を解決しました。その後、スクリプトでスペースで区切られた文字列のすべての要素を簡単に繰り返すことができます。