2015-07-19 2 views
4

Я пытаюсь сделать функцию bash, чтобы автоматически добавить все, что не было проверено или изменено в моем рабочем дереве, зафиксировать его и нажать.bash - переменные в кавычках

Это то, что он выглядит следующим образом:

gcp() { 
    git add -- .; 
    git commit -m \"$1\"; 
    git push origin $2; 
} 

Однако, когда я проверить это, я получаю:

$ gcp "test this" master 
error: pathspec 'this"' did not match any file(s) known to git. 

Как получить кавычки вокруг переменных, чтобы правильно вести себя?

ответ

6

Вам не следует избегать цитат. Также я предлагаю процитировать все аргументы. Может быть, у вашей ветви есть место в нем, кто знает? И вам нужны только точки с запятой, если вы добавили больше операторов в одну строку.

gcp() { 
    git add -- . 
    git commit -m "$1" 
    git push origin "$2" 
} 
+0

@ John1024 Спасибо, я исправил формулировку. – petersohn

+0

Названия филиалов фактически не могут содержать пробелы (или большинство других метасимволов оболочки), насколько я знаю, но цитирование по-прежнему является безопасной ставкой. –

+0

Является ли хорошей практикой прекращать линии с ';' или это вообще считается ненужным? Я имею в виду, что это не нужно, но, к примеру, JavaScript не всегда нужен ';' в конце каждой строки, но линтеры, подобные JSHint, рекомендуют вам всегда ставить их. –

Смежные вопросы