我想获取用户的真实姓名以便在登录脚本期间打印。
我目前正在使用以下命令:
finger | grep $LOGNAME | head -1 | awk '{print $2 " " $3}'
有没有更好的方法?我没有在finger
手册页中看到它有一个参数来获取仅有的真实姓名。
我在 SunOs 机器上使用 TCSH。
答案1
getent passwd $LOGNAME | awk -F ":" '{print $5}'
应该更容易。真正的名字叫“gecos”
答案2
这就是GECOS 字段来自密码文件,因此如果您愿意,您可以直接从那里获取:
grep -w $LOGNAME /etc/passwd|cut -f5 -d:
如果有人使用 GECOS 字段来存储全名以外的内容,例如办公室电话号码(这是允许的,但不再常见),则需要通过另一次剪切来获取该字段的“全名”部分:
grep -w $LOGNAME /etc/passwd|cut -f5 -d:|cut -f1 -d,