Aliase werden nicht vererbt. Deshalb werden sie traditionell in bashrc gesetzt und nicht profile . Geben Sie Ihre script.sh an von Ihrem .bashrc oder stattdessen die systemweite.
 Wenn Sie möchten, dass sie an Sub-Shells vererbt werden, verwenden Sie stattdessen Funktionen. Diese können in die Umgebung exportiert werden (export -f ), und Sub-Shells haben dann diese Funktionen definiert.
Also, für eines Ihrer Beispiele:
rmvr() { rm -rv "[email protected]"; }
export -f rmvr
 Wenn Sie viele davon haben, stellen Sie zuerst den Export ein:
set -a # export the following funcs
rmvr() { rm -rv "[email protected]"; }
cpvr() { cp -rv "[email protected]"; }
mvrv() { mv -rv "[email protected]"; }
set +a # stop exporting
 
 Das liegt daran, dass /etc/profile.d/ nur von der interaktiven Login-Shell verwendet wird. Allerdings /etc/bash.bashrc wird von der interaktiven Non-Login-Shell verwendet.
 Da ich normalerweise einige globale Aliase für das System setze, habe ich begonnen, /etc/bashrc.d zu erstellen wo ich eine Datei mit einigen globalen Aliasnamen ablegen kann:
    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