A maioria dos meus apelidos são desta forma: alias p='pwd'
Eu quero alias git commit
para que ele façagit commit -v
Mas tentar criar um alias com um espaço gera um erro:
$ alias 'git commit'='git commit -v'
-bash: alias: `git commit': invalid alias name
git config
nãogit-config
git
comandos existentes por aliases, com apenas um pouco de script de shell. (.! Eu não estou postando este comentário como uma crítica, BTW Essa resposta foi publicado quase um ano depois de seu Eu estou apenas publicá-la na esperança de que as pessoas possam encontrá-lo útil.)Você está falando de um comando que inclui um espaço, mas aqui está o comando
git
e não há espaço lá.Para chamar um comando git commit , você precisa escrevê-lo
Geralmente, os comandos não têm espaço em seus nomes por esse motivo que é complicado chamá-los em um shell, portanto, acho que você não encontrará esse comando em seu sistema.
O csh, o tcsh ou o zsh permitirá que você aliasize qualquer um dos itens acima, mas não o bash ou o ksh (embora o pdksh permita, mas você não permitirá que você os use). No zsh:
Tornará o
git command
comando (quando chamado apenas'git command'
(com aspas simples)) um alias para ogit
comando com os argumentoscommit
e-v
. Não é o que você estava procurando, eu acho.Como
alias
somente comandos de alias podem ser alias , tudo o que você pode alias aqui é ogit
comando, e você precisará alias para algo que insira um "-v" após "commit" em sua lista de argumentos. O melhor seria seguir a solução do @ jw013, mas se por algum motivo você não puder ou não, em vez de usar um alias, poderá usar uma função para fazer o trabalho:fonte
No Bash, você não pode criar um alias para um comando com nenhum espaço em branco.
No entanto, eu uso a seguinte função no meu .bashrc como uma solução alternativa.
Como isso funciona: Você começa com o comando que deseja chamar. No meu caso é
sudo
.Então, você menciona quais parâmetros seriam necessários. Nesse caso
pacman -Syu
,.Se acionado, que comando ele deve executar? Na afirmação acima, é
pacup.sh
.Senão, qual comando deve ser executado
sudo $@
,.$@
é, como você deve ter adivinhado pelo, a lista de parâmetros que o comando usa.Portanto, ao fazer o comando para o seu caso em particular, seria:
No entanto, esta solução é para o caso mais geral de quando você deseja aliasar comandos com espaços em branco.
No seu caso específico, eu recomendaria que você usasse a solução jw013 para alias seus comandos git usando
git-config
fonte
if [[ $1 == 'commit' ]]...
? A expansão de $ @ pode ter mais argumentos para confirmar que você realmente deseja manter.Na página de manual do alias do bash
Portanto, como apenas a primeira palavra está marcada, você não pode ter um alias com várias palavras. Em esta questão Usuário Super , uma solução usando uma função é fornecida:
Pode ser adaptado para
git
.fonte
\ls
ignora um alias parals
.[_!%,@]
) deve ser expandida. Ele não proíbe extensões como o apelido de '\ ls' do zsh ou o apelido de ksh / dash / bash / zsh,a-b
caso contrário não existiria um único shell POSIX. Diz apenas que um script portátil (não shell) não deve usar esse apelido.'git commit'
na posição de comando em um shell POSIX, ele deverá chamar um utilitário interno, uma função ou um comando externo.Mesmo que a solução correta seja usar aliases como jw013 sugerido, para criar alias com espaços, você pode aliases NEST.
Por exemplo, eu tenho um alias para excluir o ramo local e remotamente, mas gostaria que o usuário especifique o ramo sempre:
fonte
A partir deste exemplo, isso deve funcionar:
Mas com seus comandos:
fonte