3

git show出力を配列に読み込む bash スクリプトがあります。

まず、次のステートメントで文字列を作成します。

git show --quiet --date=rfc --pretty=format:"%s|%b|%an, %ae|%H|%cd" HEAD

これにより、必要なパターンが得られます。

SUBJECT|BODY|AUTHOR_NAME, AUTHOR_EMAIL|COMMIT_HASH|COMMIT_DATE

結果の文字列には、予期しない場所に文字が含まれていないことを確認できます。|

次に、 Split string into an array in Bash で想定されているように、文字列をフィールドに分割します。

  IFS='|' read -ra FIELDS <<< "$(git show --quiet --date=rfc --pretty=format:"%s|%b|%an, %ae|%H|%cd" $i)"

を見るとFIELDS、最初の 2 つの要素だけが満たされていますが、他の要素は空です。

echo ${FIELDS[0]} # prints SUBJECT
echo ${FIELDS[1]} # prints BODY
echo ${FIELDS[2]} # prints nothing
echo ${FIELDS[3]} # prints nothing
echo ${FIELDS[4]} # prints nothing

私は何を間違っていますか?最後の 3 つの配列要素が空なのはなぜですか?

4

2 に答える 2