echo src::${PATH} | awk 'BEGIN{pwd=ENVIRON["PWD"];RS=":";FS="\n"}!$1{$1=pwd}$1!~/^\//{$1=pwd"/"$1}{print $1}'
Команда выводит список директорий, находящихся в переменной окружения PATH, каждую на новой строке. Для этого команда использует команду echo, пайп и awk.
Echo src::${PATH} выводит значение PATH, добавляя префикс «src::». Далее, пайп передает вывод команды в awk, который разбивает строку по разделителям с помощью RS и FS. Для каждой строки автоматически создается переменная $1.
Если $1 не определено, то awk задает значение текущей директории переменной $1 (pwd). Аргументы команды передаются awk внутри одинарных кавычек. Каждый элемент разделителя RS («:» в данном случае) разбивается на отдельную строку.
Так как awk работает с паттернами регулярных выражений, то в случае отсутствия «/» в начале строки awk добавляет каталог текущей директории(pwd) в начало переменной $1. Команда печатает значение $1 для каждой строки, которая затем выводится в терминал.
Альтернативой этому подходу может быть команда «echo $PATH | tr : ‘\n'», которая также выводит содержимое переменной $PATH, но использует утилиту ‘tr’ для замены разделителя «:» на символ перевода строки для вывода каждой директории на отдельной строке в консоли.