我希望得到“友好”的名称,而不是用户名,至少如果给定的用户存在这样的字符串。我尝试过的事情:

whoami
jamesarosen

id -un
jamesarosen

id -p
uid jamesarosen
groups  staff com.apple.access_screensharing ...

id -P
jamesarosen:********:501:20::0:0:James A. Rosen:/Users/jamesarosen:/bin/bash

最后一个有我要找的信息,但我不想解析它,特别是因为我不太相信格式(特别是:s的数量)在整个操作系统中保持一致。

最佳答案

分析用户全名的GECOS字段
/etc/passwd和大多数GECOS field的格式在类Unix系统中非常标准化。如果你发现例外,一定要告诉我们。同时,在类Unix系统上获得所需内容的最简单方法是使用getent和cut解析GECOS字段。例如:

getent passwd $LOGNAME | cut -d: -f5 | cut -d, -f1

07-28 02:34