GNU/Linux >> Tutoriels Linux >  >> Linux

Comment savoir si j'exécute un shell imbriqué ?

Le $SHLVL variable suit le niveau d'imbrication de votre shell :

$ echo $SHLVL
1
$ bash
$ echo $SHLVL
2
$ exit
$ echo $SHLVL
1

Au lieu de générer des sous-shells, vous pouvez pousser et faire apparaître des répertoires de la pile et rester dans le même shell :

[[email protected] /old/dir]# pushd /new/dir
/new/dir /old/dir
[[email protected] /new/dir]# popd
/old/dir
[[email protected] /old/dir]#

Voici une version simplifiée d'une partie de mon invite :

PS1='$(((SHLVL>1))&&echo $SHLVL)\$ '

Si je ne suis pas dans un shell imbriqué, cela n'ajoute rien de plus, mais cela montre la profondeur si je suis dans n'importe quel niveau d'imbrication.


Regardez $0 :s'il commence par moins - , vous êtes dans le shell de connexion.


Linux
  1. Comment rendre les variables d'environnement « exportées » dans un script Shell ?

  2. Sur quel shell suis-je en cours d'exécution ?

  3. Comment savoir si Dd fonctionne toujours ?

  4. Comment Bash sait-il comment il est invoqué ?

  5. Comment vérifier la progression de l'exécution de Cp ?

Comment activer la virtualisation imbriquée dans VirtualBox

Comment changer un shell d'utilisateurs sous Linux

Comment utiliser if-else dans les scripts shell ?

Comment exécuter une commande dans un script shell ?

Comment :Historique Bash/shell illimité ?

Comment savoir si je cours dans un écran Linux ou non ?