Shell 在unix中,如何将who的输出导入groups命令?
我正在尝试这样做: 假设有4个用户登录到UNIX计算机,a、b、c和d 现在,为了得到这些人所属的小组,我必须输入: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)
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