GNU/Linux >> Tutoriels Linux >  >> Linux

Comment écrire un script shell à source automatique dans /etc/profile ?

J'ai entendu par la vigne que les fichiers dans /etc/profile seront automatiquement sourcés par bash lors de la connexion ?

J'ai essayé d'écrire quelque chose de simple dans /etc/profile :

 echo "echo 'foo'" > /etc/profile/foo.sh

mais j'ai eu cette erreur bizarre :

bash: /etc/profile/foo.sh: Not a directory

existe-t-il une manière correcte de procéder ?

Réponse acceptée :

/etc/profile est un fichier. D'où l'erreur lors de la tentative de création de /etc/profile/foo.sh .

/etc/profile.d est le répertoire auquel vous pensez. Les scripts qui y sont placés sont sourcés lors de la connexion. Dans votre exemple, vous voudriez créer /etc/profile.d/foo.sh .

La logique de script derrière cela et comment elle est intégrée peut être vue ci-dessous. Un code similaire se trouve dans /etc/profile , /etc/bashrc , /etc/csh.cshrc et /etc/csh.login .

$ grep -A 8 ^for.*profile.d /etc/profile
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null
        fi
    fi
done
$

Exemple de création et d'invocation d'un tel script :

# echo id >/etc/profile.d/foo.sh
# su - steve
Last login: Sat Jun 23 21:44:41 UTC 2018 on pts/0
uid=1000(steve) gid=1001(steve) groups=1001(steve),4(adm),39(video),1000(google-sudoers) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
$

Plus d'informations sur Que font les scripts dans /etc/profile.d ?


Linux
  1. La différence entre ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.gnomerc, /etc/bash_bashrc, /etc/screenrc … ?

  2. Déterminer le chemin d'accès au script shell sourcé ?

  3. Ajouter des utilisateurs aux sudoers via un script shell

  4. Ajouter une ligne au fichier /etc/hosts avec le script shell

  5. Ajuster $PATH dans /etc/profile n'affecte pas la racine

Comment écrire un script bash avec des exemples

Comment utiliser des variables dans les scripts Shell

Comment écrire un script shell dans Ubuntu

Comment exécuter une commande dans un script shell ?

Comment configurer /etc/issues pour afficher l'adresse IP pour eth0

comment modifier /etc/hosts à partir de scripts shell ?