A parte chave da sintaxe que você está perdendo aqui é:
git commit -m "$(printf "Updated $submodule Submodule\n\n" ; git diff $submodule)"
O uso da forma $()
de substituição de comandos entre aspas duplas envia a saída de git diff...
para git commit
como uma mensagem de confirmação com as novas linhas intactas.
Eu usei printf
aqui em vez de echo
para preceder a linha de assunto, pois para qualquer coisa, até mesmo um pouco complexa - como lidar com vazamentos embutidos - echo
é basicamente não-portáteis , por razões históricas.
O restante do roteiro é deixado como um exercício para o aluno. :)