whichpath() { local -A path; local c p; for c; do p=$(type -P "$c"); p=${p%/*}; path[${p:-/}]=1; done; local IFS=:; printf '%s\n' "${!path[*]}"; }


Эта функция shell whichpath() используется для получения путей к исполняемым файлам, связанным с заданными аргументами командной строки.

Она создает ассоциативный массив path, где ключом является путь к исполняемому файлу, а значением — 1 (любое ненулевое значение). Затем, для каждого аргумента командной строки, функция использует команду type -P для определения полного пути к исполняемому файлу. Далее, переменная p присваивается значение, равное пути к исполняемому файлу, без имени файла. Если переменная p пуста, то она присваивается значение «/». Затем, ключ p добавляется в ассоциативный массив path.

В конце функция использует printf для вывода всех ключей ассоциативного массива path, разделенных символом «:», что и представляет собой полученные пути.

Более простой альтернативой может быть использование команды which, которая возвращает путь к исполняемому файлу указанной команды.

Ответить

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