Comment puis-je me procurer le fichier bashrc chaque fois que j'efface

13

Ce pourrait être une mauvaise idée. Plus j'y pense, plus je me rends compte que je ne devrais probablement pas le faire ... mais j'ai essayé et échoué donc je veux vraiment savoir comment le faire, même si c'est une mauvaise idée.

Ce que je veux, c'est que le fichier bashrc soit obtenu à chaque fois que j'exécute la clearcommande. La raison en est tout à fait matérialiste. J'ai des informations système en écho lorsque je source bashrc et c'est cool pour moi et j'aimerais que ce soit au sommet chaque fois que j'efface.
J'ai essayé de configurer des alias pour clearmais je continue à courir dans des boucles infinies. La solution évidente est de changer les alias en autre chose que clear pour que je puisse exécuter la commande clear dans l'alias sans interférer, mais je tape clear si souvent que c'est un peu ancré dans mon cerveau à ce stade. J'aimerais pouvoir taper clair et le rendre clair ET source le fichier bashrc.

CaldwellYSR
la source
2
Assurez-vous que votre script .bashrc n'a aucun effet cumulatif. Si cela fait quelque chose comme ajouter des choses à vos chemins, cela pourrait devenir désordonné. En général, .bashrc sert à initialiser votre environnement shell. s'il fait autre chose, il serait préférable de les diviser en un nouveau script et d'appeler cela avec clear. De plus, si quelqu'un d'autre utilise votre système ou vous aide, il peut rencontrer un comportement inattendu car vous avez réaffecté une commande commune.
Joe
@Joe C'est un bon point sur les autres personnes utilisant mon système. Vous avez évoqué beaucoup de choses auxquelles je n'avais pas pensé.
CaldwellYSR

Réponses:

27

alias clear='source ~/.bashrc; \clear'

Le \bash indique que vous souhaitez appeler la commande externe, pas l'alias.

Daniel Pittman
la source
Ah génial, je savais que ce serait quelque chose de simple comme ça!
CaldwellYSR
13
Vous souhaiterez probablement le faire dans l'autre ordre, ou la suppression effacera toute sortie .bashrcgénérée. Mais c'est aussi une mauvaise idée d'avoir du tout .bashrcgénéré une sortie .
cjm
@cjm Ouais, je m'en suis rendu compte ce matin à propos de la commande. Je l'avais déjà dans le bon ordre, je n'avais tout simplement pas le ` in front of clair` Je vais regarder ces informations sur le bashrc et la sortie. Merci pour le lien.
CaldwellYSR
une alternative à \cleariscommand clear
glenn jackman
@CaldwellYSR, la version courte est celle des ssh host commandsources .bashrc. Si cela génère une sortie, cela confondra tous les scripts essayant d'exécuter des commandes à distance sur votre hôte et votre compte. Vous ne le faites peut-être pas maintenant, mais un jour vous le pourrez, et vous ne comprendrez pas pourquoi cela ne fonctionne pas.
cjm
2

Écrivez un script qui imprime les informations système souhaitées. Invoquez-le depuis.bashrc et depuis votre clearalias.

Keith Thompson
la source
1

Dans votre .bashrcensemble, un alias pour clearces sources .bashrcpar la suite:

alias clear='clear && . ~/.bashrc'

la source
1

Selon le commentaire de Joe ... si vous avez des "effets cumulatifs" (votre profil n'est pas sûr de réexécuter plusieurs fois), voici un hack pour contourner cela!

alias clear='\clear; exec bash -l'

Cela démarre vraiment un nouvel interprète chaque fois que vous effacez, garantissant que c'est vraiment un nouveau départ dans tous les sens. Cependant, l'exec signifie que vous ne le faites pas avec des tonnes de processus plus tard.

Domingo Ignacio Galdos
la source