У меня есть несколько разных "шляп" на моем компьютере, включая несколько проектов "на ходу" (например, $ work, несколько проектов на github, некоторые на Sourceforge, некоторые, с которыми я связан, некоторые, за которыми я просто следую, и т.д. .). У каждого есть свой собственный псевдо-домашний каталог (например, ~/hat/$ projectname). Некоторые из них имеют свои специфические параметры среды (например, среда экземпляра DB2).

Итак, у меня есть инструмент оболочки для переключения с одного на другое («hat $ projectname»). Он находит правильный домашний каталог, cd для него ("hat" - это псевдоним для ". Hat.sh", поэтому я могу это сделать), настраивает среду и т.д. Потому что я ленивый.

Теперь я хочу стать немного более ленивым. Я бы хотел настроить горячую клавишу для запуска konsole с правильными параметрами для одной шляпы, которую я ношу больше всего: $ work. Я хотел бы эффективно предварительно напечатать "работу шляпы" в окно. Но я совсем не уверен, как передать это через консоль для bash в мой .profile (?) и оставьте снаряд работающим потом. Все, пока я ничего не делаю для горячей клавиши, у меня уже есть, которая запускает konsole нормально.

2 ответа2

2

Konsole и оболочка, которую он выполняет, наследуют любые переменные окружения, установленные при запуске Konsole. Следующая команда (которую вы можете поместить в скрипт и назначить горячую клавишу) приведет к тому, что в оболочке будет установлена переменная FOO :

$ FOO=bar konsole

Другой вариант - создать различные сценарии запуска для вашей оболочки (я предполагаю bash ниже) и изменить команду, которую выполняет Konsole:

$ konsole -e "bash --rcfile ~/.bashrc-$projectname"
0

В итоге я создал новый профиль для Konsole "Работа". И он настроен на работу так же, как обычно, но он может устанавливать определенные переменные среды, поэтому я сказал ему установить HAT_PROJECT = work в качестве дополнительной переменной среды. Затем в нижней части моего .bashrc я просто запускаю " . hat.sh $HAT_PROJECT ", если он установлен, и также сбрасываю его, чтобы он не выжил.

Это существенно не отличается от второго варианта mgorvan, так как в конечном итоге создает кучу лишней кражи, которую я надеялся избежать.

Спасибо #kde на IRC за то, что первый вариант не сработал.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .