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 | ||