Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 在unix中,如何将who的输出导入groups命令?_Shell_Unix_Usergroups - Fatal编程技术网

Shell 在unix中,如何将who的输出导入groups命令?

Shell 在unix中,如何将who的输出导入groups命令?,shell,unix,usergroups,Shell,Unix,Usergroups,我正在尝试这样做: 假设有4个用户登录到UNIX计算机,a、b、c和d 现在,为了得到这些人所属的小组,我必须输入: groups a b c d. 我想知道的是,是否有一种方法可以执行类似于who | groups的操作,我可以通过管道将当前登录的用户发送到groups命令,然后该命令将打印出所有给定的用户及其组信息。但是,这似乎并没有达到预期的效果-相反,上面的命令只是给出了第一个用户所属的组。在bash、zsh和其他语言中: groups $(who | cut -d' ' -f 1)

我正在尝试这样做:

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

现在,为了得到这些人所属的小组,我必须输入:

groups a b c d.

我想知道的是,是否有一种方法可以执行类似于
who | groups
的操作,我可以通过管道将当前登录的用户发送到groups命令,然后该命令将打印出所有给定的用户及其组信息。但是,这似乎并没有达到预期的效果-相反,上面的命令只是给出了第一个用户所属的组。

在bash、zsh和其他语言中:

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

虽然我没有检查这个:

who -q | xargs -o groups
但是您应该能够使用xargs来实现这一点


这将输出“who”命令,旁边有组

I love xargs!此解决方案的最佳部分(与backticks或$()命令相比)是它允许命令的逻辑流保持从左到右
groups $(who -q)|head -n -1
who | while read -r user line; do echo "$user $line" -- `groups $user`; done