2010-10-07 67 views
1

我试图做这样的事情:在unix中,我如何将谁的输出传递给组命令?

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

现在,让这些人所属的团体,我必须键入了:

groups a b c d. 

什么我不知道,是如果有一种方法可以做到像who | groups在那里我可以管用户当前登录到groups命令,然后打印出所有用户以及他们的组信息。但是,这似乎并不像预期的那样工作 - 而是,上述命令仅给出了第一个用户所属的组。

回答

2

在bash,zsh的,和其他人:

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

虽然我没有检查这一个:

who -q | xargs -o groups 

但是,你应该能够使用xargs的这个

+0

我爱xargs的群体“谁”的命令!该解决方案的最佳部分(与反引号或$()命令相比)是允许命令的逻辑流保持从左到右 – shmuelp 2010-10-07 01:02:03

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

这将输出与侧面

相关问题