Большинство моих моих псевдонимов имеют такую форму: alias p='pwd'
Я хочу, чтобы псевдоним, git commit
чтобы он сделалgit commit -v
Но попытка создать псевдоним с пробелом выдает ошибку:
$ alias 'git commit'='git commit -v'
-bash: alias: `git commit': invalid alias name
git config
нетgit-config
git
команды с псевдонимами, только с немного сценария оболочки. (Я не публикую этот комментарий как критику, кстати. Этот ответ был опубликован спустя почти год после вашего! Я просто публикую его в надежде, что люди могут найти его полезным.)Вы говорите о команде, которая содержит пробел, но здесь есть команда,
git
и там нет пробела.Чтобы вызвать команду git commit , вам нужно написать ее
Как правило, команды не имеют места в своих именах по той причине, что их громоздко вызывать в оболочке, поэтому я не думаю, что вы найдете такую команду в своей системе.
csh, tcsh или zsh позволят вам использовать псевдоним любого из вышеперечисленного, но не bash или ksh (хотя pdksh позволит вам, но вы не позволите вам их использовать). В зш:
Будет ли сделать
git command
команду (если вызывается'git command'
(с одинарными кавычками) только) псевдоним дляgit
команды сcommit
и-v
аргументами. Не то, что вы искали, я думаю, хотя.Поскольку вы можете использовать псевдонимы
alias
только для команд , все, что вы можете использовать для псевдонима, - этоgit
команда, и вам нужно было бы присвоить ей псевдоним, который вставляет «-v» после «commit» в список аргументов. Лучше всего было бы использовать решение @ jw013, но если по какой-то причине вы не можете или не хотите, вместо использования псевдонима, вы можете использовать функцию для выполнения работы:источник
В Bash вы не можете создать псевдоним для команды с пробелами в ней.
Тем не менее, я использую следующую функцию в моем .bashrc в качестве обходного пути.
Как это работает: вы начинаете с команды, которую хотите вызвать. В моем случае это так
sudo
.Затем вы упоминаете, какие параметры он будет принимать. В этом случае
pacman -Syu
.Если сработало, какую команду он должен выполнить? В приведенном выше заявлении это так
pacup.sh
.Иначе, какая команда должна быть выполнена
sudo $@
.$@
это, как вы уже догадались, список параметров, который принимает команда.Итак, составляя команду для вашего конкретного случая, это будет:
Однако это решение предназначено для более общего случая, когда вы хотите создать псевдоним команд с пробелами в них.
В вашем конкретном случае я бы порекомендовал вам использовать решение jw013 для псевдонима ваших команд git с помощью
git-config
источник
if [[ $1 == 'commit' ]]...
? Расширение $ @ может иметь больше аргументов для коммита, который вы действительно хотите сохранить.Из справочной страницы bash alias
Таким образом, поскольку проверяется только первое слово, вы не можете иметь псевдоним с несколькими словами. В этом вопросе суперпользователя предлагается обходной путь с использованием функции:
Это может быть адаптировано к
git
.источник
\ls
обходит псевдоним дляls
.[_!%,@]
), должно быть расширено. Он не запрещает расширения, такие как псевдонимы zsh для '\ ls', или псевдонимы ksh / dash / bash / zsh,a-b
иначе не было бы ни одной отдельной оболочки POSIX. Он просто говорит, что переносимый скрипт (не оболочка) не должен использовать такой псевдоним.'git commit'
в командной позиции в оболочке POSIX, она должна вызвать встроенную утилиту, функцию или внешнюю команду.Несмотря на то, что правильным решением является использование псевдонимов, как предложено jw013, для создания псевдонимов с пробелами вы можете использовать псевдонимы NEST.
Например, у меня есть псевдоним для удаления ветки как локально, так и удаленно, но я бы хотел, чтобы пользователь всегда указывал ветку:
источник
Из этого примера это должно работать:
Но с вашими командами:
источник