Здається, це неможливо /etc/environment
. Мається на увазі як загальне місце для змінних, незалежне від оболонки. З огляду на це, схоже, що він підтримує рядки з хеш-знаками ( #
), і, схоже, немає способу уникнути їх.
Я знайшов це запитання SF під назвою: Як правильно уникнути провідного символу "#" у Linux тощо / середовищі? . Жоден із цих методів не працював:
- контроль = "привіт"
- test0 = "# привіт"
- test1 = "h \ #ello"
- test2 = "h # ello"
- test3 = "h // # ello"
- test4 = "h / # ello"
- test5 = h # ello
- test6 = h \ #ello
- test7 = h # ello
- test8 = h // # ello
- test9 = h / # ello
- test10 = 'h # ello'
- test11 = 'h \ #ello'
- test12 = 'h # ello'
- test13 = 'h // # ello'
- test14 = 'h / # ello'
Прийнята відповідь на це запитання, а також яка моя порада:
Ну, це хитрі речі, які ви хочете зробити /etc/environment
- це не синтаксис оболонки, він схожий на один, але це не так, що засмучує людей. Ідея позаду /etc/environment
була чудова. Незалежний від оболонки спосіб налаштування змінних! Так! Але практичні обмеження роблять це марним.
Ви не можете передавати там змінні. Спробуйте, наприклад, покласти MAIL=$HOME/Maildir/
його і подивитися, що відбувається. Краще просто перестати намагатися використовувати його з будь-якою метою, на жаль. Таким чином, ви не можете робити з ним речі, які, як ви очікували, зможете зробити, якщо це буде оброблено оболонкою.
Використовуйте /etc/profile
або /etc/bashrc
.
І все ж інше питання та відповіді дали це раціональне питання, чому це так:
Немає способу /etc/environment
уникнути # (як це трактується як коментар), оскільки він аналізується модулем PAM "pam_env", і він трактує його як простий список пар KEY = VAL і відповідно встановлює середовище. Це не bash / shell, аналізатор не має мови для змінного розширення або виходу символів.
Список літератури
/etc/environment
? Тому що я не міг дублювати цю поведінку на Debian Wheezy.