Шукати змінні з ~ / .bash.rc та зберігати їх у вихідних


1

Я писав купу скриптів bash, щоб зробити можливими неінтерактивні, захищені, на основі хронів SVN-каси з клієнтом SVN-клієнта CollabNet та GNOME Keyring Daemon (він же GKD), і один із сценаріїв був розроблений для запуску GKD, збирання його результатів , по суті, пара змінних середовища, і експортуйте ці змінні в оболонку користувача, сценарій якого виконується як. Усі при вході в систему користувача шляхом пошуку баш-скрипту в ~ / .bashrc.

Проблема полягає в тому, що ці змінні середовища не експортуватимуться, тому що сценарій запускається в підколонці, яка закінчується після завершення, і змінні середовища стають непотрібними.

Ну, питання полягає в тому, як можна змінити ці змінні постійно, тобто їх експортувати та залишати недоторканими навіть у сеансах входу-виходу?

Відповіді:


0

Просто перейміть змінну в інший скрипт оболонки у вашому домашньому каталозі (або в іншому місці), починаючи з. (тож він буде невидимим у вікні ls за замовчуванням). Змініть ваш .bashrc так, щоб при запуску він виконував цей скрипт оболонки.

Приклад:

foo='What the heck'; echo "foo='$foo'" > ~/.startup.sh

Потім помістіть це в ~ / .bashrc і ви закінчите:

. ~/.startup.sh

Так, саме те, що я придумав, тільки це не дозволяє автоматично запускати GKD і зберігати його змінні середовища, створюючи скрипт у ~ / .bashrc, і це те, що я хотів би зробити.
ILIV

Я маю на увазі, що я запитую, чи є спосіб зробити це без створення проміжного файлу на диску.
ІЛІВ

Пошук сценарію, пошук файлу - яка різниця? Ви хочете підтримувати змінні протягом сеансів входу в систему, коли ці змінні створюються в такому сеансі. Середовище сеансу втрачається при виході з системи. Будь-які стійкі значення повинні зберігатися десь поза середовищем. Єдині можливості, про які я можу придумати, - це файл або пам'ять демон.
garyjohn

Якщо ви джерелом скрипту, який запускає gnome-keyring-daemon шляхом виконання: експортуючи, gnome-keyring-daemon --daemonize він не експортує змінні для оболонки користувача, він експортує їх для підрозділу, створеного ~ / .bashrc, який вбивається, як тільки вбивається скрипт, який запускає демон gnome-keyring-daemon. І мені здається, немає способу обійти цю поведінку, окрім створення файлу-посередника. Немає?
ILIV

Я не знайомий з деталями ГКД. Ти можеш написати свій власний демон, який би зберігав усі дані, які ви хотіли, у його пам’яті та повертав би ці дані вам, коли їх запитували. Ви можете спілкуватися з нею за допомогою труб, розеток чи іншого механізму IPC. Перевагою такого демона є те, що ваші дані не залишаються лежачи на диску.
garyjohn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.