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
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?
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 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.
Tags bash alias shell shell-script function