Ускорение сборок и скриптов, удаление дубликатов в $PATH. Пользовательские скрипты часто содержат ошибки: PATH=/apath:$PATH, что приводит к дублированию.

glu() { (local IFS="$1"; shift && echo "$*") }; repath() { ( _E=`echo "${PATH//:/$'\n'}" | awk '!x[$0]++'`; glu ":" $_E ) ; } ; PATH=`repath` ; export PATH


Эта команда выполняет следующие действия:

1. Определяет функцию glu(), которая получает первый аргумент и использует его в качестве разделителя элементов в последующих аргументах, а затем выводит эти аргументы.
2. Определяет функцию repath(), которая выполняет следующие действия:
a. Разделяет переменную $path на отдельные элементы, используя «:» в качестве разделителя.
b. Использует awk для удаления дубликатов из полученного списка элементов.
c. Возвращает результат в формате, который разделяет элементы «:».
3. Присваивает переменной $path новое значение, полученное с помощью выполнения функции repath().
4. Экспортирует переменную $path, чтобы она была видна в других процессах.

Эта команда может быть полезна в ситуациях, когда необходимо ускорить время выполнения сборки или скриптов, избегая дублирования элементов в переменной $path. Ее использование позволяет удалить эти дубликаты и обновить переменную $path только с уникальными элементами.

Альтернативным подходом может быть использование других инструментов, например, команды awk или Perl, чтобы удалить дубликаты из $path. Однако данная команда предлагает простой способ достичь этой цели в рамках командной строки.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *