Combine dois comandos em .bash_profile

4

No meu arquivo .bash_profile , eu gostaria de configurar um único alias de comando que são dois comandos que são executados um após o outro. O primeiro comando recebe um argumento da linha de comando e o segundo é, na verdade, script (localizado em ~/bin com permissões de execução).

Meu arquivo de perfil tem isso:

alias pd='function pd2() { pushd "$@"; set_title_tab; }'

Eu tento executá-lo no shell da seguinte forma:

$ pd ~/Documents/

e eu recebo um erro:

-bash: syntax error near unexpected token '~/Documents/'

set_title_tab é um script de shell escrito por William Scott

Existe uma maneira melhor de conseguir isso?

    
por Stephan Keene 03.08.2011 / 16:28

2 respostas

11

aliases não suportam parâmetros de entrada, e não há necessidade de agrupar funções em aliases. Basta usar uma função:

pd() {
    pushd "$@"
    set_title_tab
}

pd ~/Documents
    
por 03.08.2011 / 16:36
5

Por que não isso:

pd () { pushd "$@"; set_title_tab; }

O que você tem agora é uma definição de função dentro de um apelido que é ... incomum. Depois de definir uma função (como eu fiz com pd acima), você pode usá-la como qualquer outro comando.

    
por 03.08.2011 / 16:37