Os aliases não são herdados. É por isso que eles são tradicionalmente definidos em bashrc e não em profile . Fonte seu script.sh do seu .bashrc ou o todo o sistema em vez disso.
Eu configurei aliases em /etc/profile.d/alias.sh para cada shell de login. Mas se eu executar script.sh, não posso usar esse alias. Como posso definir alias, mesmo para subshells ou processos filhos?
/etc/profile.d/alias.sh
alias rmvr='rm -rv';
alias cprv='cp -rv';
alias mvrv='mv -rv';
É porque /etc/profile.d/ é usado apenas pelo shell de login interativo. No entanto, /etc/bash.bashrc é usado pelo shell interativo de não-login.
Como normalmente defino alguns aliases globais para o sistema, comecei a criar /etc/bashrc.d onde posso soltar um arquivo com alguns aliases globais:
HAVE_BASHRC_D='cat /etc/bash.bashrc | grep -F '/etc/bashrc.d' | wc -l'
if [ ! -d /etc/bashrc.d ]; then
mkdir -p /etc/bashrc.d
fi
if [ "$HAVE_BASHRC_D" == "0" ]; then
echo "Setting up bash aliases"
(cat <<-'EOF'
if [ -d /etc/bashrc.d ]; then
for i in /etc/bashrc.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
EOF
) >> /etc/bash.bashrc
fi