在/etc/passwd
我的系统上的文件中,“注释”字段(字段 5)的内容不一致。我认为我可以提取它来获取用户的全名。
fullname=`awk -F: '$1 == name {print $5}' name=$LOGNAME /etc/passwd`
然而,这会返回包含$fullname
后面带有 0、3 或 4 个逗号的名称。探索手册页 ( man 5 passwd
) 除了将其描述为“用户名或注释字段”之外,没有提供该字段的任何详细信息。
也许还有与用户名一起存储的其他信息?
答案1
该字段通常被格式化为GECOS领域,通常有 4 个以逗号分隔的字段,用于存储除用户姓名之外的额外信息,例如电话号码、楼号等。
在我见过的所有情况下,如果字段有逗号,则名称是逗号之前的名称。但我可以想象情况并非如此(例如,“Foo Bar, Jr”这个名字就会被破坏)。