Você não pode usar argumentos posicionais em aliases. Use uma função em vez disso.
p() {
cd ~/Projects/"$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?
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)
Tags bash