Не используйте двойные кавычки при использовании git commit -a -m

Вопрос:Мне немного надоело использовать двойные кавычки, когда я использую git commit git commit -a -m "fix xxx error" когда я устанавливаю псевдоним следующим образом: coam = "!f() { git commit -a -m $1; }; f" Он работает, когда я печатаю git coam fix он фиксируется как git commit -a -m "fix" но как установить команду,

Вопрос:

Мне немного надоело использовать двойные кавычки, когда я использую git commit

git commit -a -m «fix xxx error»

когда я устанавливаю псевдоним следующим образом:

coam = «!f() { git commit -a -m $1; }; f»

Он работает, когда я печатаю

git coam fix

он фиксируется как

git commit -a -m «fix»

но как установить команду, которая может обрабатывать

git commit -a -m «fix xxx error»

когда я просто набираю

git coam fix xxx error

Я тестирую

coam = «!f() { git commit -a -m $*; }; f»

но это не сработает!

спасибо!

Лучший ответ:

“Я немного устал от использования двойных кавычек”, < – но у вас нет выбора.

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

И параметр git commit -m принимает один аргумент. Эти двойные кавычки необходимы.

Единственный способ, которым вы можете обойти это, – это иметь свою небольшую оболочку script, которая соберет эти аргументы для вас:

#!/bin/bash exec git commit -a -m «$*»

Если script выше называется mygitcm и на вашем пути, вы можете:

mygitcm my commit message here

Цитата из ваших примеров, я думаю, это сработало бы:

coam = «!f() { git commit -a -m «$*»; }; f»

(другая хорошая идея заключалась бы в том, чтобы делать сообщения с пояснительными сообщениями, конечно;))

Оцените статью
Добавить комментарий