Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | |||
sysadmin:linux:shell [2022/01/14 16:57] – Complément invocation d'un shell de login yoann | sysadmin:linux:shell [2023/01/19 09:26] (Version actuelle) – yoann | ||
---|---|---|---|
Ligne 23: | Ligne 23: | ||
===== Identifier le shell de login ===== | ===== Identifier le shell de login ===== | ||
- | La documentation | + | La documentation |
<code bash> | <code bash> | ||
Ligne 39: | Ligne 39: | ||
bash | bash | ||
</ | </ | ||
+ | |||
+ | Depuis un shell interactif, on peut utiliser la primitive **exec** pour remplacer le processus courant par un interpréteur nommé " | ||
+ | |||
+ | <code bash> | ||
+ | # L' | ||
+ | # mais 'est pas un shell de login | ||
+ | echo $$ | ||
+ | 83679 | ||
+ | |||
+ | shopt login_shell | ||
+ | login_shell | ||
+ | |||
+ | # Ici on remplace l’exécution courante par un nouvel interpréteur bash nommé " | ||
+ | exec -a " | ||
+ | |||
+ | echo $0 | ||
+ | -bash | ||
+ | |||
+ | # Le PID est identique | ||
+ | echo $$ | ||
+ | 83679 | ||
+ | |||
+ | # mais l' | ||
+ | shopt login_shell | ||
+ | login_shell | ||
+ | </ | ||
+ | |||
+ | Le fait d' | ||
+ | |||
Pour qu'un shell soit considéré comme shell de login, il suffit de positionner l' | Pour qu'un shell soit considéré comme shell de login, il suffit de positionner l' | ||
Ligne 52: | Ligne 81: | ||
# Invoque un nouveau shell avec l' | # Invoque un nouveau shell avec l' | ||
+ | # et exécute les commandes passées à l' | ||
/bin/bash -l -i -c 'echo $0; echo PID=$$; shopt login_shell; | /bin/bash -l -i -c 'echo $0; echo PID=$$; shopt login_shell; | ||
/bin/bash | /bin/bash |