Модификаторы предварительной команды в zsh

В POSIX нет ничего, что могло бы помочь, кроме id. Попытка idи возвращение к синтаксическому анализу /etc/passwd, вероятно, настолько переносимы, насколько это возможно на практике.

BusyBox idне принимает идентификаторы пользователей, но системы с BusyBox обычно представляют собой автономные встраиваемые системы, где разбора /etc/passwdдостаточно.

Если вы столкнулись с системой, отличной от -GNU, где idне принимает идентификаторы пользователей, вы также можете попробовать вызватьgetpwuidчерез Perl, если он доступен:

username=$(perl -e 'print((getpwuid($ARGV[0]))[0])) 2>/dev/null
if [ -n "$username" ]; then echo "$username"; return; fi

Или Питон:

if python -c 'import pwd, sys; print(pwd.getpwuid(int(sys.argv[1]))).pw_name' 2>/dev/null; then return; fi

0
28.11.2021, 11:38
0 ответов

Теги

Похожие вопросы