
在文件中/etc/passwd
我們有所謂的GECOS fields
(代表「通用電氣綜合作業系統」),即:
username:password:userid:groupid:gecos:home-dir:shell
其中GECOS
分為:
:FullName,RoomAddress,WorkPhone,HomePhone,Others:
並Others
依需要用逗號分隔:
:FullName,RoomAddress,WorkPhone,HomePhone,Other1,Other2,Other3:
在man chfn
頁面中可以讀到:
另一個欄位用於儲存其他應用程式使用的記帳資訊。
現在,對於應用程式開發人員(我對和/或感興趣)來說C language
,獲取此資訊的最佳方式是什麼?system calls
bash script
僅考慮Bash
環境,鑑於該finger
命令無法顯示others
字段(或至少我不知道如何顯示),還有哪些其他命令可以?我知道chfn
不僅要展示它們,還要允許它們被改變。如果只是將其輸出到怎麼辦stdout
?
答案1
我發現的最佳方法是使用,getent
因為這將與 LDAP/NIS 或非本地用戶的其他方法一起使用
getent passwd $UID| awk -F ":" '{print $5}'
答案2
答案3
您可以只使用兩個巢狀剪切命令:
- 首先以「:」作為字段分隔符,剪切字段1&5;和
- 第二個以「,」作為字段分隔符,剪切字段 1 & 5-N;