aliases não funcionam no bash - shell de login

0

Eu tenho um alias definido em ~/.bashrc e ~/.bash_profile como:

alias e='echo'

Quando eu executo o comando como:

bash -c 'e hello'

Mostra erro como:

bash: e: command not found

Mas a partir de um shell bash interativo, quando executo o comando e hello , ele imprime hello .

    
por Madhavan Kumar 09.09.2015 / 08:01

2 respostas

4

Se você invocar bash apenas por:

bash -c 'cmd'

Em seguida, bash será um shell não-interativo, não-login, portanto, ele não fornecerá nenhum script rc.

Se você quiser que ~/.bashrc seja originado, chame bash por:

bash -ic 'e hello'

Com o -i flag bash é chamado como shell interativo de não-login. Então bash origina o arquivo ~/.bashrc .

    
por 09.09.2015 / 08:11
-1

adicione a .profile ou similar ~ / .bash_profile

e(){
ECHO_COMMAND='which echo'
$ECHO_COMMAND "$@"
}

Relogin ou execute

test@term{~}:source .profile

Teste:

test@term{~}:e hello
hello
    
por 09.09.2015 / 09:27