como faço para concatenar um regex em um alias bash?

1

Eu não posso para a vida de mim como criar um alias que irá mudar para um determinado diretório do projeto.

Mantenho todos os meus projetos em uma pasta chamada Projetos, por exemplo, ~/Project/blog ~/Project/whatever

Gostaria de ter um alias ao longo das linhas de p whatever que equivaleria a cd ~/Project/$1 , em que $1 é o que for atribuído a p .

Eu tentei várias combinações de alias p="cd ~/Projects/\" com todos os suspeitos usuais para regex escaparem, mas não consigo entender.

Alguma idéia?

    
por Rodreegez 11.05.2010 / 19:00

2 respostas

3

Você não pode usar argumentos posicionais em aliases. Use uma função em vez disso.

p() {
  cd ~/Projects/"$1"
}
    
por 11.05.2010 / 19:01
1

Talvez seja isso o que você estava procurando: como expandir aliases inline no bash?

então uma solução simples seria usar o comando shell-expand-line

Defina o alias sem \ $ 1

 $bash>alias p="cd ~/Projects/"
 $bash>p 

apenas pressione Meta - Ctrl - e para expandir a obtenção:

$bash>cd /home/USERNAME/Projects/

Esta solução coloca um espaço em branco desajeitado no final da expansão que você terá que remover com BackSpace antes de escrever qualquer outra coisa

Como Ignacio Vazquez-Abrams sugeriu uma solução mais elegante wolud estar usando uma função com propriedades de autocomplete (olhando em / etc / bash_completion)

    
por 11.06.2011 / 21:31

Tags