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 つの配列要素が空なのはなぜですか?