Como definir um alias na execução do comando?

1

Eu quero que outros desenvolvedores tenham alguns métodos convenientes. Portanto, eu quero dar-lhes um script, que automaticamente define um apelido.

Por exemplo, o comando grunt compileModule:[modulename] deve definir o alias cprev como este comando exato. O comando ainda deve ser executado depois de definir o alias!

Como normalmente estamos trabalhando vários dias no mesmo módulo, o alias também deve receber uma entrada no arquivo ~/.bashrc (este é o principal 'recurso', então sempre que eles fecharem o bash, eles não precisarão colocar todo o comando na reentrada)

Agora, há muitas postagens sobre history e como procurar quais comandos foram executados por último, etc., mas não consegui descobrir como classificar "concatenar" todas as informações para resultar no que preciso.

Eu estava pensando em criar um alias para grunt .

Algo como

alias grunt='~/myScriptForAliasHistory.sh;grunt $1';

isso seria adequado?

Editar

para tornar isso mais claro:

O comando original é

grunt compileModule:[name]

e deve estar funcionando assim após a modificação.

Ele deve fazer apenas uma etapa adicional , para que você possa chamar a mesma função que

cprev

também (com os mesmos parâmetros)

O fluxo de trabalho pode ser assim:

  1. O desenvolvedor começa a trabalhar em um novo módulo. Para compilá-lo, ele escreve grunt compileModule:[name] .
  2. O mesmo desenvolvedor precisa reiniciar o bash / pc / console. Agora ele não quer escrever o comando inteiro novamente, mas quer apenas digitar cprev (que então executa grunt compileModule:[name] )
  3. No dia seguinte, ele começa a trabalhar no módulo [anothername] , então ele executa grunt compileModule:[anothername]
  4. Se ele agora for reiniciado, o comando cprev executará grunt compileModule:[anothername]

Em outras palavras: Sempre que grunt compileModule for chamado, ele deverá sobrescrever o alias cprev com seus próprios parâmetros de chamada atuais.

    
por Do Re 06.12.2017 / 10:29

1 resposta

1

Usar a expansão de histórico com ! fará isso sem um alias ou função:

$ grunt compileModule:[something]

$ # other things

$ !grunt

O último !grunt fará com que o shell procure o último comando no histórico da linha de comando que começa com a string grunt e executa isso.

Em bash :

!string

Refer to the most recent command preceding the current position in the history list starting with string.

Se o shell tiver um histórico persistente (geralmente habilitado pela configuração de HISTFILE ), isso também funcionará em sessões de shell consecutivas e, dependendo do shell, ele pode até funcionar em sessões simultâneas.

    
por 06.12.2017 / 11:15