2010-10-07 66 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 

這將輸出與側面

相關問題