Jak mogę pobrać plik bashrc za każdym razem, gdy „wyczyszczę”


13

To może być zły pomysł. Im więcej o tym myślę, tym bardziej uświadamiam sobie, że prawdopodobnie nie powinienem tego robić ... ale próbowałem i zawiodłem, więc NAPRAWDĘ chcę wiedzieć, jak to zrobić, nawet jeśli to zły pomysł.

Chcę, aby plik bashrc był pozyskiwany za każdym razem, gdy uruchamiam clearpolecenie. Powód tego jest całkowicie materialistyczny. Mam informacje o systemie, które odbijają się echem po źródle bashrc, i jest to dla mnie fajne i chciałbym, aby było na górze za każdym razem, gdy usuwam.
Próbowałem skonfigurować aliasy dla, clearale ciągle napotykam nieskończone pętle. Oczywistym rozwiązaniem jest zmiana aliasów na coś innego niż clear, aby móc uruchomić polecenie wyczyść w aliasie bez ingerencji, ale piszę clear tak często, że jest to w pewnym sensie zakorzenione w moim mózgu. Chciałbym móc wpisać clear i wyczyścić ORAZ źródło pliku bashrc.


2
Upewnij się, że skrypt .bashrc nie ma skumulowanych efektów. Jeśli robi coś takiego, jak dodawanie rzeczy do twoich ścieżek, może być bałagan. Ogólnie rzecz biorąc, .bashrc służy do inicjalizacji środowiska powłoki. jeśli robi inne rzeczy, lepiej byłoby podzielić je na nowy skrypt i nazwać to wraz z clear. Ponadto, jeśli ktoś użyje twojego systemu lub Ci pomoże, może napotkać nieoczekiwane zachowanie, ponieważ zmieniłeś przeznaczenie wspólnego polecenia.
Joe

@Joe To dobra uwaga na temat osób korzystających z mojego systemu. Przywołaliście wiele rzeczy, o których nie myślałem.
CaldwellYSR

Odpowiedzi:


27

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

\Mówi bash, który chcesz wywołać polecenie zewnętrzne, a nie alias.


Ach, świetnie, wiedziałem, że to będzie coś takiego prostego!
CaldwellYSR

13
Prawdopodobnie chcesz to zrobić w innej kolejności, w przeciwnym razie kasowanie usunie wszystkie .bashrcwygenerowane dane wyjściowe . Ale złym pomysłem jest .bashrcgenerowanie produkcji w ogóle.
cjm

@cjm Tak, zdałem sobie sprawę, że dziś rano o zamówieniu. Miałem to już w prawidłowej kolejności, po prostu nie miałem ` in front of jasnego `Spojrzę na te informacje o bashrc i wynikach. Dzięki za link.
CaldwellYSR

alternatywą \clearjestcommand clear
glenn jackman

@CaldwellYSR, krótka wersja to ssh host commandźródła .bashrc. Jeśli to wygeneruje dane wyjściowe, pomieszają wszystkie skrypty próbujące uruchomić zdalne polecenia na twoim hoście i koncie. Być może teraz tego nie robisz, ale pewnego dnia możesz, a potem będziesz zdezorientowany, dlaczego to nie działa.
cjm

2

Napisz skrypt, który wypisze żądane informacje systemowe. Wywołaj go z .bashrci ze swojego clearaliasu.


1

W twoim .bashrczestawie później alias dla cleartych źródeł .bashrc:

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

1

Według komentarza Joe ... jeśli masz „kumulatywne efekty” (twój profil nie może być wielokrotnie uruchamiany ponownie), oto sposób na obejście tego!

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

To naprawdę uruchamia nowego tłumacza za każdym razem, gdy go wyczyścisz, gwarantując, że to naprawdę nowy początek pod każdym względem. Exec oznacza jednak, że nie będziesz musiał używać mnóstwa procesów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.