Каждая строка сортируется по полям, затем файл и выбираются только уникальные строки
while read line
do
echo $line |
tr ',' '\n' |
sort |
tr '\n' ','
done < 1 |
sed -e 's/^,//' -e 's/,$//' -e 's/,,/\n/g' |
sort -u
Если в вашей среде оболочки есть $USER
, все должно работать, так как make
импортирует все переменные среды. Но вам нужно позаботиться о том, действительно ли $USER
отражает текущий идентификатор пользователя.
Однако внутри Makefiles существуют другие правила, отличные от внутренних сценариев оболочки. Вы можете проверить это с помощью следующего make-файла:
all:
echo USER: $(USER)
и это должно работать. Обратите внимание, что make
требует $ (... )для создания имен макросов, которые длиннее одного символа. Скобки необходимы, потому что в противном случае $U
будет расширено.
Теперь к вашей проблеме с разрешением. Похоже, вы использовали программу типа su
или sudo
, которая изменяет идентификатор пользователя без изменения переменной оболочки $USER
.
Попробуйте напрямую войти в систему как пользователь, которого вы хотите запустить make
.