Как я могу передать все аргументы командной строки моего bash-скрипта как один аргумент другой программе? - PullRequest
4 голосов
/ 24 июля 2011

Я хочу написать простой git-скрипт, который будет запускать следующие строки:

cd <the name of my git repo>
git add *
git add -u
git commit -m "<my comment in the form of a string>"
git push origin master

Я новичок в bash-скриптинге, так что это было для меня проблемой.Моя существующая попытка выглядит следующим образом:

#!/bin/sh

cd <my repo name which has no have any spaces>
git add *
git add -u
git commit -m $*
git push origin master

Я не совсем знаю, как добавить правильный строковый аргумент в кавычках.В настоящее время я пытаюсь запустить программу следующим образом:

autogit.sh "Example comment."

Как мне изменить свой сценарий, чтобы он работал с комментариями из нескольких слов?

Ответы [ 4 ]

5 голосов
/ 24 июля 2011

Самый быстрый ответ здесь заключается в том, что в вашем скрипте строка коммита должна выглядеть так:

git commit -m "$*"

3 голосов
/ 24 июля 2011

Bash выполняет интерполяцию строк.Ваш скрипт должен быть в порядке, если вы замените строку

git commit -m $*

на

git commit -m "$*"
3 голосов
/ 24 июля 2011

Вот несколько примеров моих псевдонимов, которые могут вам помочь.Я делаю аналогичные вещи.

http://lukas.zapletalovi.com/2011/04/my-git-aliases.html

Например:

rem = !sh -c 'test "$#" = 1 && git h && git checkout master && git pull && git checkout \"$1\" && git rebase master && git checkout master && git merge \"$1\" && echo Done and ready to do: git pom && exit 0 || echo \"usage: git rem \" >&2 && exit 1' -

# git rem
usage: git rem ...

# git rem my_branch
...

Это принимает один параметр, также все команды объединяются с &&, который останавливается с кодом ошибки1 немедленно, если какая-либо команда в цепочке (например, слияние) не выполнена.Удачи с псевдонимами.

2 голосов
/ 24 июля 2011
git commit -m "$*"

должен сделать это за вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...