Автор Гілка: Глобальні змінні Bash в Fedora KDE  (Прочитано 12111 раз)

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +1/-0
  • Fedora, CentOS, RHEL, KDE
В Bash чимало існує глобальних змінних, але у Fedora деякі з них мають інші імена чи відсутні. Тож хочу поцікавитися, як переглянути які є в bash? Команда env виводить всі наявні глобальні змінні? Чи є якась шпаргалка чи довідник по них? Може книга? Як дізнатися за допомогою них шлях до стандартних тек KDE (Документи, Музика, Відео, і т.д.)? Чи можливо свої задати? Як це можна зробити?

Моя шпаргалка є невеликою, десь 30-40 змінних, чого дуже не вистачає для написання нормальних скриптів :(

« Змінено: 2012-12-09 02:02:17 від HetmanNet »
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Глобальні змінні Bash в Fedora KDE
« Відповідей #1 : 2012-12-09 04:15:55 »
Змінні оточення здебільшого не мають особливого значення. Значення має, як конкретна програма їх обробляє. Це зазвичай вказується у кінці man-сторінки відповідної програми. Подивитися, що встановлене конкретно зараз — set, встановити свою — додати до ~/.bashrc export FOO=bar. export потрібний для того, щоб перемінна передавалася у оточення процесів-нащадків. Для кедів — мабуть http://techbase.kde.org/KDE_System_Administration/Environment_Variables .

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +1/-0
  • Fedora, CentOS, RHEL, KDE
Re: Глобальні змінні Bash в Fedora KDE
« Відповідей #2 : 2012-12-09 15:04:47 »
Так розумію змінні оточення обробляють активні програми на даний момент, тому хочу спитати - якщо наприклад написати демона (наприклад на Сі) то як зробити, щоб він міг мати свою змінну оточення?
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Глобальні змінні Bash в Fedora KDE
« Відповідей #3 : 2012-12-09 16:07:09 »
Елементарно — просто в демоні використовуйте значення цієї змінної оточення. getenv() для C. os.getenv() для lua, $ENV{FOO} для perl. Якщо її не буде встановлено, вирази повернуть відповідно NULL, nil та undef.
« Змінено: 2012-12-09 16:08:08 від ISBear »

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +1/-0
  • Fedora, CentOS, RHEL, KDE
Re: Глобальні змінні Bash в Fedora KDE
« Відповідей #4 : 2012-12-09 18:23:15 »
Елементарно — просто в демоні використовуйте значення цієї змінної оточення. getenv() для C. os.getenv() для lua, $ENV{FOO} для perl. Якщо її не буде встановлено, вирази повернуть відповідно NULL, nil та undef.
getenv() поверне значення змінної оточення, а чи можливою додати (встановити) свою змінну до змінних оточення? Наприклад, є демон uLabs (моє творіння), мені треба щоб він міг додати змінні оточення $ULABS_DEVICE та $ULABS_STATUS. Бо є потреба в можливості написанні скриптів на bash, які повинні мати можливість перевірити стан демона.
« Змінено: 2012-12-09 18:27:38 від HetmanNet »
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Глобальні змінні Bash в Fedora KDE
« Відповідей #5 : 2012-12-09 19:07:24 »
Змінні оточення працюють не так, як ви собі уявляєте. Кожен процес має своє оточення, незалежне від інших процесів. Нащадки процеса наслідують копію оточення процеса, але всеодно цілком назалежну копію — якщо ви зміните значення змінної у батьківському процесі після запуску дочірнього, у дочірньому нічого не зміниться. І навпаки. Ви можете передати через змінні оточення у демон якісь значення при запуску, але він зможе передати якісь значення лише процесам, які він сам запустив. Для цього можна використовувати setenv(). Але наголошую, це діє лише для процесів, запущених зсередини вашого демона.

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +1/-0
  • Fedora, CentOS, RHEL, KDE
Re: Глобальні змінні Bash в Fedora KDE
« Відповідей #6 : 2012-12-09 23:03:23 »
Вибачайте за оффтоп, але чи можете порадити якийсь довідник чи книгу чи ресурс де були би описані функції для роботи з процесами та передачі параметрів (і змінних) між ними (орієнтуватися на linux), і якщо є щось по демонах, бо мої поки дуже примітивні. Бажано українською чи москальською, в крайньому випадку англійською.
« Змінено: 2012-12-09 23:07:23 від HetmanNet »
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Глобальні змінні Bash в Fedora KDE
« Відповідей #7 : 2012-12-10 00:25:43 »
Вибачайте за оффтоп, але чи можете порадити якийсь довідник чи книгу чи ресурс де були би описані функції для роботи з процесами та передачі параметрів (і змінних) між ними (орієнтуватися на linux), і якщо є щось по демонах, бо мої поки дуже примітивні. Бажано українською чи москальською, в крайньому випадку англійською.

man 2 fork, man 3 exec , man 3 popen , і т.д. Переклади манів на російську є на opennet.ru. Напр. http://translate.google.com/translate?hl=en&sl=ru&tl=uk&u=http%3A%2F%2Fwww.opennet.ru%2Fman.shtml%3Ftopic%3Dpopen%26category%3D3

[Fedora Linux]