GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi les nouveaux terminaux apparaissent-ils dans Awesome avec Shlvl>1 ?

J'ai une PS1 qui montre le SHLVL si ce n'est pas 1 pour voir rapidement si je suis dans un sous-shell. Cela fonctionne comme prévu lors de l'utilisation de GNOME, mais lorsque je crée un nouveau terminal dans Awesome WM (Mod4 +Retour ) il commence toujours par SHLVL=2 ou plus. Est-ce normal ?

Ceci est directement lié au nombre de fois que j'ai redémarré Awesome (Mod4 +Ctrl +r ou pkill -HUP awesome ). Existe-t-il un moyen d'éviter de générer de nouveaux shells lors du redémarrage ?

Ces commits semblent être pertinents, car Awesome finit par exécuter quelque chose comme $SHELL -c ... sur HUP , mais je ne connais pas assez C pour le réparer.

Mon /bin/sh est dash et mon shell de connexion est bash .

A signalé le problème.

Réponse acceptée :

Je pense que je comprends pourquoi, mais je n'ai pas de solution complète.

Le comportement de SHLVL dépend de la coque. Dans dash et ksh (pdksh et ksh93), seules les instances interactives incrémentent SHLVL . Dans bash et zsh, toutes les instances incrémentent SHLVL , même bash -c … .

Si vous avez observé un changement de comportement après ce patch, il est probable que votre /bin/sh est tiret et votre $SHELL est bas. Avant, awesome exécutait /bin/sh -c … qui n'a pas changé SHLVL . Après le patch, il exécute maintenant $SHELL -c … , c'est-à-dire bash -c … , qui incrémente SHLVL .

Vous pourriez tricher en changeant SHLVL à l'intérieur Génial. Accrochez-vous au code de démarrage pour diminuer SHLVL par 1. Je suis presque sûr que c'est possible sans recompiler le code C, bien que je ne connaisse pas le code Lua.


Linux
  1. Quoi de neuf avec rdiff-backup ?

  2. Insérer de nouvelles lignes avec des valeurs manquantes (na) ?

  3. Pourquoi Xargs ne peut pas fonctionner avec Tail -f ?

  4. Pourquoi puis-je me connecter avec des mots de passe partiels ? ?

  5. Comment créer un nouvel utilisateur avec un accès Ssh ?

Donnez une nouvelle vie à un vieux MacBook avec Linux

Comment ajouter un nouvel utilisateur MySQL avec des autorisations GRANT

Ajout de nouveaux utilisateurs sous Linux avec la commande Useradd

Créer de nouveaux groupes sous Linux avec la commande Groupadd

Pourquoi poll n'est pas remplacé par epoll ?

Générer une nouvelle fenêtre de terminal avec le même répertoire que la fenêtre précédente