Как запустить указанный код .bashrc только при первом открытии консоли

У меня есть кусок кода в моем .bashrc, каждый раз, когда вы запускаете оболочку (я обычно использую консоль), появляется случай переключения, дающий варианты использования ветки или магистрали. Пример:

1) V0230
2) V0300
3) Dev

Enter Option: __

$PROJECT_HOME и другие переменные устанавливаются по выбору.

Раздражает то, что он появляется каждый раз, когда я открываю новую вкладку, печатается один и тот же экран. Но все же я хочу открыть новую консоль и использовать другую ветку, поэтому простой экспорт переменной не может быть решением.

Должен быть способ запустить этот код только тогда, когда открыт новый экран консоли. Возможно, делая alias konsole=konsole --run <desired-function>. Документация по консоли не помогает, там даже man konsole нет, только konsole --help.


person Rodrigo Gurgel    schedule 30.07.2012    source источник


Ответы (2)


Просто создайте псевдоним:

$ alias konsole_select_branch='SELECT_BRANCH=true konsole'

и в вашем .bashrc:

if [ -n "$SELECT_BRANCH" ]
then
   # select branch
fi

и используйте konsole или konsole_select_branch, хотите ли вы выбрать ветку или просто открыть вкладку или окно.

person Diego Torres Milano    schedule 30.07.2012
comment
это работает, единственное, что странно, это то, что когда я запускаю через консоль Alt + F2, она не показывает регистр переключателей для ветвей. - person Rodrigo Gurgel; 31.07.2012

Вы можете поместить скрипт в .bashrc, который частично перезапишет .bashrc; средство автозаполнения zsh делает что-то подобное, например. может быть, сделать что-то вроде

 if [ -f $HOME/.somebashthing; ]; then
    . $HOME/.somebashthing
 else
    read SOMETHING
    echo SOMEVAR=$SOMETHING > $HOME/.somebashthing
 fi

Это только набросок; это зависит от вас, чтобы заполнить детали.

person Basile Starynkevitch    schedule 30.07.2012