Це команда envpathp, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS.
ПРОГРАМА:
ІМ'Я
envpath - Розширені операції зі змінними шляху
СИНТАКСИС
Запустіть цей сценарій з опцією "-help", щоб дізнатися більше про використання.
ОПИС
Розбирає командний рядок, змінює вказані змінні шляху та виконує решту
аргументи. Є два режими, простий та просунутий:
ПРОСТО РЕЖИМ
Простий режим представляє альтернативний, незалежний від платформи синтаксис для визначення шляхів
де роздільником шляху є ",", а змінні середовища можна розширити за допомогою @NAME@.
Наприклад
envpath PATH=@PATH@,/usr/ucb -- printenv ШЛЯХ
додає "/usr/ucb" до $PATH і execs printenv PATH. "--" необов'язковий.
Ви також можете вказати додавання або додавання, використовуючи "+=" або "=+" відповідно:
# помістіть /usr/ucb спереду
envpath ШЛЯХ+=/usr/ucb -- printenv ШЛЯХ
# помістіть /usr/ucb ззаду
envpath PATH=+/usr/ucb -- printenv PATH
Простому режиму потрібен лише цей скрипт; він не вимагає встановлення Env::Path.
ADVANCED РЕЖИМ
Розширений режим в основному забезпечує доступ з командного рядка до функцій Env::Path (див.),
який необхідно встановити. Прапор "-E" вибирає змінну шляху для роботи та інше
прапори вказують операції над ним. напр
envpath -E MANPATH -A / Tmp -R / usr / share / man -N -U -- чоловік ...
візьме MANPATH, доп / Tmp до нього, видаліть будь-які посилання на "/ usr / share / man", видалити
будь-які неіснуючі каталоги ("-N") та видаліть зайві записи ("-U") перед запуском людина.
Параметр -Whence дозволяє використовувати шаблони. Таким чином
envpath -W "кішка*"
знайде всі програми на PATH, які відповідають cat*.
CLEARCASE ВІНКІНС
Велика частина мотивації для цього сценарію полягала у використанні зі збірками ClearCase; якщо ти
знати чи піклуватися про ClearCase читайте далі. Як правило, під час збірок (і не тільки з
ClearCase), такі параметри шляху, як PATH, CLASSPATH і LD_LIBRARY_PATH, повинні бути строго
контрольовані. Один з варіантів полягає в тому, щоб змусити їх статичні значення в навколишнє середовище під час
процес побудови, інший — просто вимагати/очікувати, що користувачі встановлюють свої шляхи належним чином.
Однак кожне з них може призвести до незначних помилок збірки або виконання, що ускладнює вирішення
новим користувачам, щоб отримати швидкість, оскільки їх особисте середовище має бути саме таким.
Іншим поширеним вибором є використання лише повних імен шляхів у Makefile, уникаючи довіри
на пошукових шляхах взагалі. Часто це найкращий спосіб, але він може придушити ClearCase
підморгує. Наприклад, припустимо, що ви створюєте файли ASCII певного типу за допомогою двійкового файлу
щойно створений виконуваний файл:
$(INCDIR)/foo.h: $(BINDIR)/foomaker $(BINDIR)/foomaker ...
Проблема в тому, що $(BINDIR), ймовірно, містить частину платформи, таку як "solaris"
або 'hpux', що робить неможливим підморгування у файлі foo.h на інших платформах навіть
хоча це ascii. Те ж саме можна було б придумати навіть зі стандартною попередньо створеною утилітою
що в різних місцях на різних платформах; "yacc", наприклад, знаходиться в / usr / bin on
Linux і /usr/ccs/bin на Solaris.
Ви можете змінити шлях на льоту:
$(INCDIR)/foo.h: $(BINDIR)/foomaker PATH=$(BINDIR)$(SEP)$$PATH foomaker ...
але це страждає від тієї ж проблеми: оскільки $(BINDIR) і $PATH розгортаються буквально
у сценарії збірки вони придушують winkins. Ось рішення використання envpath:
$(INCDIR)/foo.h: $(BINDIR)/foomaker envpath PATH=@BINDIR@,@PATH@ foomaker ...
Це приховує оцінку BINDIR і PATH так, що clearmake ніколи не бачить нічого, крім
літералів, таким чином очищаючи поле для winkins. Звичайно envpath здатний зробити
більше, ніж це, але це початкова причина, чому це було написано.
Використовуйте envpathp онлайн за допомогою служб onworks.net