Как я могу получить файл bashrc каждый раз, когда я "очищаю"

13

Это может быть плохой идеей. Чем больше я думаю об этом, тем больше я осознаю, что мне, вероятно, не следует этого делать ... но я пытался и терпел неудачу, поэтому я ДЕЙСТВИТЕЛЬНО хочу знать, как это сделать, даже если это плохая идея.

Я хочу, чтобы файл bashrc получал каждый раз, когда я запускаю clearкоманду. Причина этого полностью материалистична. У меня есть информация о системе, когда я получаю исходный код bashrc, и это круто для меня, и я бы хотел, чтобы это было на вершине каждый раз, когда я очищаюсь.
Я пытался настроить некоторые псевдонимы для, clearно я продолжаю сталкиваться с бесконечными циклами. Очевидное решение состоит в том, чтобы изменить псевдонимы на что-то еще, кроме clear, чтобы я мог запускать команду clear в псевдониме, не вмешиваясь, но я печатаю так часто, что это как бы укоренилось в моем мозгу в этот момент. Я хотел бы иметь возможность печатать ясно и ясно, И исходный файл bashrc.

CaldwellYSR
источник
2
Убедитесь, что ваш скрипт .bashrc не имеет кумулятивных эффектов. Если это делает что-то вроде добавления вещей на ваши пути, это может стать грязным. В общем, .bashrc предназначен для инициализации вашей оболочки. если это делает другие вещи, то было бы лучше разделить их на новый скрипт и вызвать его вместе с clear. Кроме того, если кто-то еще использует вашу систему или помогает вам, он может столкнуться с непредвиденным поведением, поскольку вы изменили общую команду.
Джо
@Joe Это хороший момент, когда другие люди используют мою систему. Вы, ребята, подняли много вещей, о которых я не думал.
CaldwellYSR

Ответы:

27

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

Команда \bash сообщает, что вы хотите вызвать внешнюю команду, а не псевдоним.

Даниэль Питтман
источник
Ах, здорово, я знал, что это будет что-то простое!
CaldwellYSR
13
Возможно, вы захотите сделать это в другом порядке, или очистка сотрет любой .bashrcсгенерированный вывод . Но это также плохая идея - .bashrcгенерировать вывод вообще.
CJM
@cjm Да, я понял это сегодня утром по поводу заказа. У меня уже было это в правильном порядке, у меня просто не было ` in front of ясности`, я посмотрю эту информацию о bashrc и выводе. Спасибо за ссылку.
CaldwellYSR
альтернативой \clearявляетсяcommand clear
Гленна Джекман
@CaldwellYSR, короткая версия - это ssh host commandисточники .bashrc. Если это сгенерирует выходные данные, это приведет к путанице в любых скриптах, пытающихся запустить удаленные команды на вашем хосте и учетной записи. Возможно, вы не делаете это сейчас, но когда-нибудь вы могли бы, и тогда вы будете озадачены, почему это не работает.
cjm
2

Напишите скрипт, который печатает необходимую системную информацию. Вызовите его .bashrcиз своего clearпсевдонима и из него .

Кит Томпсон
источник
1

В вашем .bashrcнаборе псевдоним для clearэтих источников .bashrcвпоследствии:

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

источник
1

Согласно комментарию Джо ... если у вас есть "кумулятивные эффекты" (ваш профиль не безопасен для многократного повторного запуска), вот вам способ обойти это!

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

Это действительно начинает новый переводчик каждый раз, когда вы очищаете, гарантируя, что это действительно новый старт во всех отношениях. Exec, однако, означает, что вы не с тоннами процессов, лежащих вокруг позже.

Доминго Игнасио Галдос
источник