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 clear
Befehls 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 clear
aber 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.
Antworten:
alias clear='source ~/.bashrc; \clear'
Das
\
teilt der Bash mit, dass Sie den externen Befehl aufrufen möchten, nicht den Alias.quelle
.bashrc
generierten Ausgaben . Es ist aber auch eine schlechte Idee, überhaupt.bashrc
Output zu generieren .` in front of
richtigen Informationen. Danke für den Link.\clear
istcommand clear
ssh host command
Quellen.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.Schreiben Sie ein Skript, das die gewünschten Systeminformationen druckt. Rufen Sie es von
.bashrc
und nach Ihremclear
Alias auf.quelle
In Ihrem
.bashrc
Set ein Alias fürclear
diese Quellen.bashrc
danach:quelle
Per Joes Kommentar ... wenn du "kumulative Effekte" hast (dein Profil kann nicht mehrmals wiederholt werden), hier ist ein Hack, um das zu umgehen!
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.
quelle