Когда вы запускаете псевдоним Git с !
, это говорит Git вызвать оболочку для вашего псевдонима. По умолчанию оболочка расширяет слова пробелами, поэтому ваше назначение param2 состоит только из «this». Чтобы решить эту проблему, вам нужно заключить в кавычки ваши аргументы. Поскольку у вас уже есть двойные кавычки, вам нужно их избежать. Кроме того, чтобы иметь синтаксически допустимые назначения, вам также необходимо удалить пробелы вокруг знака равенства.
Итак, все будет выглядеть так:
my-alias = "!f() { \
param1=\"$1\"; \
param2=\"$2\"; \
rem_param=\"${@:3}\"; \
};f"
Я должен также отметить, что поскольку Git всегда использует /bin/sh
в качестве оболочки для псевдонимов (если она не была скомпилирована явно для другого), синтаксис ${@:3}
будет работать только в системах, которые используют bash как /bin/sh
. Этот псевдоним не работает в большинстве систем Debian и Ubuntu, где /bin/sh
- тире.