Ищу способ написать функцию, вызывающую git commit с несколькими сообщениями; например:
git commit -m "This is the commit headline" -m "This is a new paragraph for the commit" -m "Adding paragraphs makes it easier to give details"
Et c.
Дело в том, что мне не удается найти эффективный способ express в скрипте, какой параметр (-m) и что строка / сообщение.
Вот что у меня есть:
function commit(){
if [[ $# > 1 ]]
then
commit_body=`echo $2 | cut -d '=' -f 2`
IFS='|' read -r -a paragraphs <<< "$commit_body"
git commit -m "$1" $(for p in "${paragraphs[@]}"; do echo -n "-m $p"; done)
else
git commit -m "$1"
fi
}
Функция будет вызываться путем выполнения:
commit "Commit headline" body="1st paragraph for the commit|2nd paragraph"
Проблема в том, что в моя функция, аргумент "-m" рассматривается как строка командой git commit. Но если я возьму его из строки «echo», тогда он станет аргументом команды echo, чего я не хочу.
У вас есть какие-нибудь указания, как это обойти?