Для чого використовуються змінні середовища TERM_PROGRAM та TERM_PROGRAM_VERSION?


3

Після запуску:

env  ; #from with in terminal

Я бачу такий вихід:

TERM_PROGRAM=Apple_Terminal  ;#Not sure Terminal.app
TERM_PROGRAM_VERSION=273     ;#The CFBundleVersion of Terminal.app
TERM=xterm-color
SHELL=/bin/bash
...

Після спроби надати значення кожному з перелічених змінних я не можу реально знайти жодних остаточних джерел для чого саме використовуються змінні TERM_PROGRAM та TERM_PROGRAM_VERSION. Сторінки Man і Apropos не показують нічого, що пояснює це, а Google також не так. Зрозуміло, це стосується якихось специфічних параметрів Apple в Mac OS X, просто не впевнений, що?


3
Це може бути не що інше, як інформаційна змінна запущеного клієнта терміналу, яка використовується, наприклад, у сценаріях. Наприклад, у ньому перераховано iTerm.app для мене.
Геррі

Відповіді:


2

Я припускаю, що це просто змінна середовище, яка зберігає вашу програму за замовчуванням, яку ви хочете використовувати, щоб відкрити вікно терміналу. Існує кілька різних додатків на OS X, які дають вам командний рядок, схожий на Unix. За замовчуванням - термінал, що постачається Apple, в /Applications/Utilities/Terminal.app. Якщо ви встановили якийсь інший термінал, наприклад iTerm або AquaTerm, то ця змінна, ймовірно, встановлена ​​саме для цієї програми, якщо вона є вашим замовчуванням. Ім'я Apple_Terminalмає бути деяким внутрішнім ярликом до повного /Applications/Utilities/Terminal.app шляху.

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

EDIT : насправді ця відповідь на переповнення стека, здається, підтверджує мої підозри.


Ваша відповідь має сенс, але чи не заперечуєте ви якимось чином перевірити свою гіпотезу та оновити свою відповідь своїми висновками?
Ендрю Ларссон

Ну, наприклад, @Gerry вказав у коментарі до питання, що TERM_PROGRAMзмінна перераховувала iTerm.app для нього. Якщо він може задзвонити і сказати, чи є це термінал за замовчуванням, це має бути достатньо. Я не знаю, у верхній частині голови програма, яка запускає термінал для перевірки цього - чи не так?
см2

Дивіться редагування відповіді - схоже, на це вже відповіли раніше при переповненні стека.
см2

3
Для того, щоб підтвердити: так, TERM_PROGRAMвстановлюються на Apple_Terminalтермінал , щоб ідентифікувати себе, і ніякий інший програма не повинна встановити його до цього значення. І TERM_PROGRAM_VERSIONчи визначена поточна версія програми TERM_PROGRAM. Ви можете скористатися цим, наприклад, для перевірки того, чи достатньо новий термінал для підтримки якоїсь функції, яку ви хочете використовувати, як-от послідовності евакуації для встановлення робочого каталогу та представленого файлу (новий у Lion).
Кріс Пейдж
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.