Wie kann ich die bashrc-Datei jedes Mal, wenn ich sie 'lösche', als Quelle verwenden?

13

Das könnte eine schlechte Idee sein. Je mehr ich darüber nachdenke, desto mehr stelle ich fest, dass ich es wahrscheinlich nicht tun sollte ... aber ich habe es versucht und bin gescheitert, also möchte ich WIRKLICH wissen, wie es geht, auch wenn es eine schlechte Idee ist.

Ich möchte, dass die bashrc-Datei bei jedem Ausführen des clearBefehls geladen wird . Der Grund dafür ist völlig materialistisch. Ich habe Systeminformationen, die ausgegeben werden, wenn ich bashrc als Quelle habe, und es ist cool für mich, und ich möchte, dass das jedes Mal, wenn ich es lösche, an der Spitze ist.
Ich habe versucht, einige Aliase für einzurichten, stoße clearaber immer wieder auf Endlosschleifen. Die offensichtliche Lösung besteht darin, die Aliase in etwas anderes als clear zu ändern, damit ich den Befehl clear im Alias ​​ausführen kann, ohne mich zu stören, aber ich gebe clear so oft ein, dass es zu diesem Zeitpunkt irgendwie in meinem Gehirn verankert ist. Ich möchte in der Lage sein, klar zu schreiben und klar zu machen UND die bashrc-Datei als Quelle zu verwenden.

CaldwellYSR
quelle
2
Stellen Sie sicher, dass Ihr .bashrc-Skript keine kumulativen Auswirkungen hat. Wenn es irgendetwas wie das Anhängen von Dingen an Ihre Pfade tut, kann es chaotisch werden. Im Allgemeinen dient .bashrc zum Initialisieren Ihrer Shell-Umgebung. Wenn es andere Dinge tut, ist es besser, sie in ein neues Skript aufzuteilen und dies zusammen mit clear aufzurufen. Wenn ein anderer Benutzer Ihr System verwendet oder Sie unterstützt, kann dies zu unerwartetem Verhalten führen, da Sie einen allgemeinen Befehl erneut verwendet haben.
Joe
@ Joe Das ist ein guter Punkt, wenn andere Leute mein System benutzen. Ihr habt eine Menge Dinge angesprochen, über die ich nicht nachgedacht hatte.
CaldwellYSR,

Antworten:

27

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

Das \teilt der Bash mit, dass Sie den externen Befehl aufrufen möchten, nicht den Alias.

Daniel Pittman
quelle
Ah toll, ich wusste, dass es so etwas Einfaches sein würde!
CaldwellYSR
13
Sie möchten dies wahrscheinlich in der anderen Reihenfolge tun, oder das Löschen löscht alle .bashrcgenerierten Ausgaben . Es ist aber auch eine schlechte Idee, überhaupt .bashrcOutput zu generieren .
cjm
@cjm Ja, das habe ich heute morgen über die Bestellung gemerkt. Ich hatte es bereits in der richtigen Reihenfolge, ich hatte einfach nicht die ` in front of richtigen Informationen. Danke für den Link.
CaldwellYSR
Eine Alternative zu \clearistcommand clear
Glenn Jackman
@ CaldwellYSR, die Kurzversion ist, dass ssh host commandQuellen .bashrc. Wenn dies zu einer Ausgabe führt, werden alle Skripte verwirrt, die versuchen, Remote-Befehle auf Ihrem Host und Ihrem Konto auszuführen. Sie tun das jetzt vielleicht nicht, aber eines Tages werden Sie verwirrt sein, warum es nicht funktioniert.
cjm
2

Schreiben Sie ein Skript, das die gewünschten Systeminformationen druckt. Rufen Sie es von .bashrcund nach Ihrem clearAlias ​​auf.

Keith Thompson
quelle
1

In Ihrem .bashrcSet ein Alias ​​für cleardiese Quellen .bashrcdanach:

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

quelle
1

Per Joes Kommentar ... wenn du "kumulative Effekte" hast (dein Profil kann nicht mehrmals wiederholt werden), hier ist ein Hack, um das zu umgehen!

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

Dadurch wird jedes Mal ein neuer Interpreter gestartet, wenn Sie den Vorgang beenden. So wird garantiert, dass es in jeder Hinsicht ein Neustart ist. Die Exekutive bedeutet jedoch, dass Sie nicht mit Tonnen von Prozessen zu tun haben, die später herumliegen.

Domingo Ignacio Galdos
quelle