O problema é: Quando o bash é iniciado de forma não interativa, ele não lê ~/.bashrc
.
Assim, você precisa ler h()
do script.
Se você quiser usar aliases em um script, precisará
-
ativar o uso de aliases no script com
shopt -s expand_aliases
-
defina o alias no script.
Uma alternativa a um alias é definir uma função de shell (que funciona da mesma forma em shells interativos e não interativos):
foo () {
bar "$@"
}
Mas não é possível assumir o alias ou as definições de função do shell em execução em um script, pois o shell que está executando o script é reinicializado.