GNU/Linux >> Tutoriels Linux >  >> Linux

Alias ​​dans le sous-shell / processus enfant

Les alias ne sont pas hérités. C'est pourquoi ils sont traditionnellement définis dans bashrc et non profile . Sourcez votre script.sh depuis votre .bashrc ou celui à l'échelle du système à la place.


Si vous voulez qu'ils soient hérités des sous-shells, utilisez plutôt des fonctions. Ceux-ci peuvent être exportés vers l'environnement (export -f ), et les sous-shells auront alors ces fonctions définies.

Donc, pour l'un de vos exemples :

rmvr() { rm -rv "[email protected]"; }
export -f rmvr

Si vous en avez plusieurs, configurez-les d'abord pour l'exportation :

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

C'est parce que /etc/profile.d/ est utilisé uniquement par le shell de connexion interactif. Cependant, /etc/bash.bashrc est utilisé par le shell interactif sans connexion.

Comme je définis habituellement des alias globaux pour le système, j'ai commencé à créer /etc/bashrc.d où je peux déposer un fichier avec des alias globaux :

    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

Linux
  1. Pourquoi le Pgid des processus enfants n'est-il pas le PID du parent ?

  2. Linux - Besoin d'explications sur la taille de l'ensemble résident/taille virtuelle ?

  3. Processus UNIX / Linux :fonction C fork()

  4. Comment trouver tous les processus enfants ?

  5. Comment obtenir la valeur de retour de CHILD PROCESS ?

Comment configurer les alias de domaine dans cPanel ?

Comment définir le répertoire de travail du processus parent ?

Comment suivre le processus enfant à l'aide de strace?

Comment tuer un processus enfant après un délai d'attente donné dans Bash?

Comment définir l'ID de processus sous Linux pour un programme spécifique

Puis-je reprendre un processus vim existant ?