在unix中,如何将who的输出传递给groups命令?

时间:2010-10-07 00:13:17

标签: shell unix usergroups

我正在尝试做这样的事情:

假设有4个用户登录到UNIX计算机,a,b,c和d。

现在,为了获得这些人所属的团体,我必须输入:

groups a b c d.

我想知道的是,是否有办法做who | groups这样的事情,我可以将当​​前登录的用户通过管道命令管理,然后打印出所有用户和他们的用户小组信息。但是,这似乎没有按预期工作 - 相反,上面的命令只是给第一个用户所属的组。

4 个答案:

答案 0 :(得分:2)

在bash,zsh和其他人中:

groups $(who | cut -d' ' -f 1)

答案 1 :(得分:1)

虽然我没有检查过这个:

who -q | xargs -o groups

但你应该可以使用xargs来实现这个

答案 2 :(得分:0)

groups $(who -q)|head -n -1

答案 3 :(得分:0)

who | while read -r user line; do echo "$user $line" -- `groups $user`; done

这将输出“who”命令与侧面的组